我有一台运行的linux服务器,我每天都会备份。 备份脚本就像一个魅力,但我希望在完成时有一些反馈,有或没有错误。
#!/bin/bash
# Hier gaan we zoeken naar alle mappen en onderliggende mappen in de LinuxKJ server.
find /var/www -maxdepth 1 -mindepth 1 -print0 | while read -d $'\0' foldername
do
# Hier gaan we alle mappen in zipjes comprimeren en overzetten naar een andere locatie. Overigens laat hij _Inactief eruit.
fatsoenlijkPad=$(echo $foldername)
tar --exclude='/var/www/_Inactief' -zcvpf /mediabak/winboxbak/"${fatsoenlijkPad##*/}".tar.gz "$fatsoenlijkPad"
# Hier gaan we kijken of de functie hierboven een succes return (Succes = 0) (Fout = 1,2,3,4, etc)
if ( $? == 0 ) then
Mailtext=$(echo "Backup succesvol.")
else
Mailtext=$(echo "Backup failed.")
fi
done
# Hier gaan we mailen wat de functie heeft gereturned
mail -s "Linux backup" "example@example.com"
$Mailtext
./ backupscript.sh:line 9:141:找不到命令
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
使用bash square brackets
。因此改变
if ( $? == 0 ) then
到
if [ $? == 0 ]; then
编辑:更改
mail -s "Linux backup" "example@example.com"
$Mailtext
到
echo $Mailtext | mail -s "Linux backup" example@example.com
要验证您是否能够发送和接收邮件,请尝试发送带有虚拟文本的邮件,如下所示。
echo "Testing Mail" | mail -s "Linux backup" example@example.com
答案 1 :(得分:0)
如评论所述,您对Mailtext的变量分配效率低下(它可以正常工作,但使用echo命令分配文本值是没有意义的。)
至于您的电子邮件发送,您的邮件命令调用应该是:
echo $Mailtext | mail -s "Linux backup" "example@example.com"