1
因此,我试图在使用LFTP传输文件时捕获特定错误,但问题是,由于调用<<EOF
以允许与交互式shell进行交互,我无法捕获它们。在LFTP Bash脚本中捕获错误
我使用的代码如下:
#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
显然,当告别被称为交互式会话关闭,但没有得到& &后执行。
任何人有任何想法如何做这样具体的错误捕捉?
你尝试使用陷阱,而不是'||'和''&&运营商? – Aserre
我怀疑你将需要转向'Tcl/expect'来获得该级别的检查。 –
@Aserre - 还没有尝试过,会试试看。 – thezadmin