Сделать crontab более эффективным
Я управляю относительно простым сервером с несколькими веб-сайтами, которые я поддерживаю.
Я установил crontab, чтобы выгружать mysql и архивировать PHP каждый день. Вращаясь за неделю, у меня есть 7 приращений всего, что происходит. Затем я использую тот же crontab, чтобы скопировать их с сервера на другой.
Используя бит MySQL в качестве примера у меня есть
16 3 * * tue mysqldump filename > /var/backups/b-Tuesday/filename.sql
16 3 * * wed mysqldump filename > /var/backups/b-Wednesday/filename.sql
[etc]
Это повторяется для архивации PHP для каждого из сайтов и снова для части процесса scp.
Есть ли способ иметь ежедневную работу для каждого сайта, которая знает, как сохранить ее в папке резервного копирования соответствующего дня, вместо того, чтобы иметь 7 заданий для каждой резервной копии?
5 ответов
Как насчет использования функции даты в вызове?
16 3 * * * mysqldump filename > /var/backups/b-`date +%A`/filename.sql
В качестве альтернативы команда logrotate будет обрабатывать сжатие, переименование (с датами), удаление и т. Д. Файлов, которые создаются каждый день. Вы можете вызывать команды dump каждый день, а также вызывать logrotate один раз в день. Файл конфигурации logrotate позволяет указать, какие файлы вращать и что с ними делать.
Попробуйте скрипт оболочки примерно так:
#!/bin/bash
/usr/bin/mysqldump filename | /usr/bin/bzip2 -c > /var/backups/b-`date +%A`/filename.sql.bup.bz2
Это похоже на то, что в моем /etc/cron.daily/, но с изменениями для ваших путей. Я продолжаю иметь в виду сделать больше с этим, но это работает, и резервные копии также хорошо сжаты!
Мой формат даты на самом деле date +%Y%m%d
чтобы дать мне больше информации, но я сохраняю резервные копии более 7 дней.
Для быстрого и работоспособного решения Брент выберет дату.
В зависимости от необходимости и желания обеспечить гибкость в будущем, я мог бы рассмотреть возможность создания резервных копий в сценарии оболочки. Таким образом, вы можете использовать одну и ту же кодовую базу для ежедневной, еженедельной, ежечасной или любой другой информации. Вы также получаете выгоду от регистрации ошибок и отчетности (если это имеет значение).
Связанный с касательной, rsnapshot будет управлять почасовыми, ежедневными, еженедельными, ежемесячными резервными чередованиями для вас. Он использует умную комбинацию rsync и жестких ссылок для создания резервных копий.