У меня есть работа для root
0 0 * * * /usr/bin/time /path/to/mysqlbackup.sh | /bin/mail -s "MySQL Backup" "[email protected]"
И сценарий будет отображать некоторую информацию при запуске, которая затем будет отправлена по электронной почте, как и ожидалось.
Проблема в том, что если возникает ошибка, она не отправляется на электронную почту, поэтому я не могу ее поймать. Если я просматриваю mail
пользователя root, я вижу такие ошибки, как
mysqldump: ошибка: 2002: не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2) при попытке подключения
Как я могу отправить весь вывод, вызванный скриптом, на мою электронную почту?
Примечания
Крон работа
* * * * * (/usr/bin/time /root/utils/test.sh 2&>1) | /usr/bin/tee /tmp/cron.test | /bin/mail -s "test" "[email protected]"
Сообщение найдено в почте root
[root@example utils]# mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root@example Fri Oct 11 08:35 23/1025 "Cron <root@example> (/usr/bin/time /root/utils/test.sh 2&>1) | /usr/bin/tee /tmp/cron.test | /bin/mail -s "test" "[email protected]""
&
Message 1:
From [email protected] Fri Oct 11 08:35:01 2013
Date: Fri, 11 Oct 2013 08:35:01 -0700
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <root@example> (/usr/bin/time /root/utils/test.sh 2&>1) | /usr/bin/tee /tmp/cron.test | /bin/mail -s "test" "[email protected]"
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Null message body; hope that's ok
Содержание /root/utils/test.sh
echo "Starting backup at $(date)"
mysql -u potato -e "show status" # produces error
FILE="/path/to/file.bak"
FILESIZE=`du -h $FILE | cut -f1`
echo $FILESIZE
/tmp/cron.test пуст
Тело отправленного письма пусто