2017-10-09 12 views
1

LFTPを使用してファイルを転送中に特定のエラーを検出しようとしましたが、問題があります。<<EOFを呼び出して対話型シェルとのインターフェイスが可能です。次のようにLFTP Bashスクリプトのエラーをキャッチ

私が使用していたコードは次のとおりです。BYEが呼び出されたときに

#Start backup procedure 
lftp<<EOF 
open ftps://$HOST || bye && #SEND MAIL CANNOT CONNECT TO SERVER (ERROR) 
login $USER $PASSWORD || #SEND MAIL AUTH FAILURE (ERROR) 
#Remove existing backups on FTP server 
glob -a rm -r ./* || bye && #SEND MAIL FAILED (WARNING) TO REMOVE PREVIOUS BACKUPS 
#Upload new backup to FTP server 
lcd /var/opt/gitlab/backups 
mput *.tar || bye && #SEND EMAIL (ERROR) FAILED TO UPLOAD FILES 
bye 
EOF 

は明らかに、対話型セッションが閉じられているが、何も& &後に実行されないされます。

誰かがこのような特定のエラーをキャッチする方法についての任意のアイデアを持っていますか?

+0

があなたの代わりに、 '||'と '&&'演算子のトラップを使用してみましたか? – Aserre

+0

私はあなたがそのレベルのチェックを得るために 'Tcl/expect'に向ける必要があると思っています。 –

+0

@Aserre - まだ試してみませんか、試してみましょう。 – thezadmin

答えて

0

あなたは括弧を使用してグループ化コマンドを使用することができます。

open... || (shell send-mail; exit 1) 
関連する問題