Postgresql Postgres备份脚本未发送电子邮件

Postgresql Postgres备份脚本未发送电子邮件,postgresql,debian,mutt,Postgresql,Debian,Mutt,我正在使用autopostgresqlbackup在Debian 8.3上备份我的PostgreSQL数据库。除了压缩备份没有通过电子邮件发送给我之外,其他一切都正常。当我使用“sudo autopostgresqlbackup”运行脚本时,我得到: 无法stat@gmail.com:没有这样的文件或目录 @gmail.com:无法附加文件。 根据我的研究,这可能是因为mutt要求“必须将-a选项放在命令行选项的末尾” 脚本本身的相关部分似乎是: ATTSIZE=`du -c $BACKUPF

我正在使用autopostgresqlbackup在Debian 8.3上备份我的PostgreSQL数据库。除了压缩备份没有通过电子邮件发送给我之外,其他一切都正常。当我使用“sudo autopostgresqlbackup”运行脚本时,我得到:

无法stat@gmail.com:没有这样的文件或目录
@gmail.com:无法附加文件。
根据我的研究,这可能是因为mutt要求“必须将-a选项放在命令行选项的末尾”

脚本本身的相关部分似乎是:

ATTSIZE=`du -c $BACKUPFILES | grep "[[:digit:][:space:]]total$" |sed s/\s*total//`
        if [ $MAXATTSIZE -ge $ATTSIZE ]
        then
                if which biabam >/dev/null 2>&1
                then
                        BACKUPFILES=$(echo $BACKUPFILES | sed -r -e 's#\s+#,#g')
                        biabam -s "PostgreSQL Backup Log and SQL Files for $HOST - $DATE" $BACKUPFILES $MAILADDR < $LOGFILE
                elif which heirloom-mailx >/dev/null 2>&1
                then
                        BACKUPFILES=$(echo $BACKUPFILES | sed -e 's# # -a #g')
                        heirloom-mailx -s "PostgreSQL Backup Log and SQL Files for $HOST - $DATE" $BACKUPFILES $MAILADDR < $LOGFILE
                elif which mutt >/dev/null 2>&1
                then
                        BACKUPFILES=$(echo $BACKUPFILES | sed -e 's# # -a #g')
                        mutt -s "PostgreSQL Backup Log and SQL Files for $HOST - $DATE" $BACKUPFILES $MAILADDR < $LOGFILE
                else
                        cat "$LOGFILE" | mail -s "WARNING! - Enable to send PostgreSQL Backup dumps, no suitable mail client found on $HOST - $DATE" $MAILADDR
                fi
        else
                cat "$LOGFILE" | mail -s "WARNING! - PostgreSQL Backup exceeds set maximum attachment size on $HOST - $DATE" $MAILADDR
ATTSIZE=`du-c$BACKUPFILES | grep“[[:digit:[:space:]total$”| sed s/\s*total//`
如果[$MAXATTSIZE-ge$ATTSIZE]
然后
如果哪个biabam>/dev/null 2>&1
然后
BACKUPFILES=$(echo$BACKUPFILES | sed-r-e's#\s+#,#g')
biabam-s“PostgreSQL备份日志和SQL文件的$HOST-$DATE”$BACKUPFILES$MAILADDR<$LOGFILE
elif哪个传家宝mailx>/dev/null 2>&1
然后
BACKUPFILES=$(echo$BACKUPFILES | sed-e's##-a#g')
Herigroum mailx-s“PostgreSQL备份日志和SQL文件的$HOST-$DATE”$BACKUPFILES$MAILADDR<$LOGFILE
elif哪个mutt>/dev/null 2>&1
然后
BACKUPFILES=$(echo$BACKUPFILES | sed-e's##-a#g')
mutt-s“PostgreSQL备份日志和SQL文件,用于$HOST-$DATE”$BACKUPFILES$MAILADDR<$LOGFILE
其他的
cat“$LOGFILE”| mail-s”警告!-启用发送PostgreSQL备份转储,在$HOST-$DATE“$MAILADDR”上找不到合适的邮件客户端
fi
其他的
cat“$LOGFILE”| mail-s”警告!-PostgreSQL备份超过$HOST-$DATE“$MAILADDR上设置的最大附件大小

我曾尝试在上面的代码中反转“-a#g”的顺序,但随后出现错误。如果有脚本备份Postgres并只发送日志,一切都正常,但如果我让它通过电子邮件发送备份文件,则不会。你知道为什么电子邮件附件不起作用吗

已解决:将mutt的“$BACKUPFILES$MAILADDR<$LOGFILE”顺序更改为“$MAILADDR$BACKUPFILES<$LOGFILE”,这阻止了mutt尝试将电子邮件地址作为附件附加,因此失败

像这样:

mutt -s "PostgreSQL Backup Log and SQL Files for $HOST - $DATE" $MAILADDR $BACKUPFILES < $LOGFILE
mutt-s“用于$HOST-$DATE的PostgreSQL备份日志和SQL文件”$MAILADDR$BACKUPFILES<$LOGFILE

已解决:将mutt的“$BACKUPFILES$MAILADDR<$LOGFILE”顺序更改为“$MAILADDR$BACKUPFILES<$LOGFILE”,这阻止了mutt尝试将电子邮件地址作为附件附加,因此失败

像这样:

mutt -s "PostgreSQL Backup Log and SQL Files for $HOST - $DATE" $MAILADDR $BACKUPFILES < $LOGFILE
mutt-s“用于$HOST-$DATE的PostgreSQL备份日志和SQL文件”$MAILADDR$BACKUPFILES<$LOGFILE