天天看點

shell腳本觸發java程式支援傳參補跑 +crontab定時器+每天生成日期檔案_03

文章目錄

  • ​​1. 腳本更新​​
  • ​​2. 執行測試​​
  • ​​3. 腳本關鍵詞簡述​​
  • ​​補充案例​​

上一篇:

shell腳本觸發java程式支援傳參補跑 +crontab定時器_02

1. 腳本更新

cd /app/ly

#!/bin/bash
fdate=$(date +%Y%m%d%H%M%S)
flog='/app/ly/logs/shellrun-'
elog='/app/ly/logs/errors-'
fname=$flog$fdate'.log'
ename=$elog$fdate'.log'

nohup /app/jdk1.8.0_202/bin/java -cp "./ly.war/WEB-INF/classes" com.gblfy.shell.MainDeal $1 <<EOF > "$fname" 2>&1
EOF

if grep -i "Login failed" "$fname" > /dev/null
then
echo "ERROR: Login failed" >> "$ename"
fi
if grep -i "Not connected" "$fname" > /dev/null
then
echo "ERROR: Cannot connect to the destination" >> "$ename"
fi
if grep -i "No such file" "$fname" > /dev/null
then
echo "ERROR: Cannot change directory. No such file or directory." >> "$ename"
fi
if grep -i "No such directory" "$fname" > /dev/null
then
echo "ERROR: Cannot change remote directory. No such file or directory." >> "$ename"
fi
if grep -i "File or Directory does not exist" "$fname" > /dev/null
then
echo "ERROR: Cannot transfer. File or Directory does not exist" >> "$ename"
fi      

2. 執行測試

不傳參數

[root@localhost ly]# ./lyshell2.sh
[root@localhost ly]# cat logs/shellrun-20201227132209.log 
沒有接收到參數
開始擷取目前日期:2020-12-27
[root@localhost ly]#      

傳參數

[root@localhost ly]# ./lyshell2.sh 2020-12-26
[root@localhost ly]# cat logs/shellrun-20201227132529.log 
開始補跑: 2020-12-26這天的資料
[root@localhost ly]#      

3. 腳本關鍵詞簡述

<< EOF
...
EOF
其中的"..."表示使用者輸入内容。
說明:EOF隻是一個标示符,可以用其它非關鍵字元或字元串來代替,例如:
<< abc
.....
abc      

補充案例

#!/bin/bash
#Filename:do.sh
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
sleep 5
su