使用bash脚本发送电子邮件

时间:2015-03-18 09:20:02

标签: linux bash

我有一台运行的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:找不到命令

有人可以帮我解决这个问题吗?

2 个答案:

答案 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"