Intereting Posts
Повторяются ли повторяющиеся записи в переменной PATH с приоритетом, заданным первой записью? В Linux Centos 7 что такое network.service и что он делает? Помимо конфигурации в файле /etc/yum.repos.d, где еще можно настроить репозиторий? Могу ли я определить архитектуру набора инструкций в vimrc? (ARM против x86) Отчеты об обновлении apt-get 406 Не допускается Как узнать, какое действие или команда или сценарий назначены на аппаратную кнопку? Удаление LXDE и установка GNOME 3 mkdosfs навсегда зависает даже при использовании тайм-аута Установите интервал опроса wi-fi на Linux, возможно ли это? что такое упрощение ОС в Linux или Unix? Вход в систему или подключение к USB-устройству пробуждает сетевой принтер Как вы обрабатываете несколько правил валидации при различных пользовательских вводах? Исполняемый файл не «действительно существует» после rsync Получить вертикальную позицию курсора альтернатива «dd», которая не обрезает файл

Остановить отправку почты cron для резервного копирования?

Я создал резервный сценарий для резервного копирования мировых данных на моем сервере Minecraft ежечасно, используя cron, но из-за того, что миры постоянно редактировались игроками, tar говорил мне, что файлы изменялись во время чтения. Я добавил в скрипт -ignore-command-error для tar в tar и что он подавляет любые ошибки, когда я запускаю его вручную, однако cron по-прежнему отправляет почтовое сообщение о том, что файлы были изменены во время чтения, и заканчивается тем, что наводняет мою почту, потому что это работать один раз в час. Кто-нибудь знает, как это исправить? Это сценарий:

filename=$(date +%Y-%m-%d) cd /home/minecraft/Server/ for world in survival survival_nether survival_the_end creative superflat do if [ ! -d "/home/minecraft/backups/$world" ]; then mkdir /home/minecraft/backups/$world fi find /home/minecraft/backups/$world -mtime +1 -delete tar --ignore-command-error -c $world/ | nice -n 10 pigz -9 > /home/minecraft/backups/$world/$filename.tar.gz done 

Cron попытается отправить электронное письмо с любым результатом, который мог произойти при выполнении команды. Из справочной страницы cron:

При выполнении команд любой вывод отправляется владельцу crontab (или пользователю, указанному в переменной среды MAILTO в crontab, если таковая существует). Любой вывод задания также можно отправить в syslog с помощью опции -s.

Поэтому, чтобы отключить его для конкретной записи crontab, просто захватите все выходные данные команд и либо направьте их в файл, либо в /dev/null .

 30 * * * * notBraiamsBackup.sh >/dev/null 2>&1 

Если вам не нужны письма для конкретной задачи cron, вы можете просто добавить >/dev/null 2>&1 в конец строки:

 30 * * * * backup.sh >/dev/null 2>&1 

Вместо того, чтобы передавать все в /dev/null (что может оставить вас без подсказки о том, что произошло, если что-то пошло не так), вы можете подключить свои скрипты к файлам журналов следующим образом:

 30 * * * * backup.sh > ~/logs/backup.log 

И чтобы перестать получать почту, просто установите для переменной MAILTO пустую строку в начале вашего файла crontab:

 MAILTO="" 

В команду gnu tar добавьте следующее: –warning = no-file-changed

Это приведет к подавлению всех сообщений « % s: файл, измененных по мере их чтения ». И, используя это решение (и не перенаправляя все на / dev / null), вы все равно сможете получать сообщения об ошибках, когда что-то пойдет не так.


С помощью флага –warning вы можете включать и отключать множество различных сообщений, которые печатает tar . Ниже приведена соответствующая часть руководства со всеми ключевыми словами, которые вы можете использовать: https://www.gnu.org/software/tar/manual/html_section/tar_27.html .

Примечание: добавив «нет» перед ключевым словом, сообщение будет подавлено.