Создадим в своей домашней директории (home/USER_NAME) на сервере скрипт sql_backup.sh
#!/bin/sh # зададим для переменной "data" дату в формате -день, месяц, год, часов, минут, секунд. data=`/bin/date +%d.%m.%Y_%H-%M-%s` # копируем данные из MySql в текстовый файл /usr/local/bin/mysqldump --all-databases --user=NAME --password=PASS > /home/USER-NAME/sql_dump.sql #сжимаем текстовый файл в архив /usr/bin/gzip --best /home/USER-NAME/sql_dump.sql #Переименовываем файл sql_dump.sql.gz в sql_dump_${data}.sql.gz /bin/mv sql_dump.sql.gz sql_dump_${data}.sql.gz
В строке /usr/local/bin/mysqldump ... можно добавить дополнительные опции:
--default-character-set=charset_name
--complete-insert
Чтобы добавить в задание Crontab, используйте команду - crontab -e
#Создание резервной копии через каждые 45 минут
*/45 * * * * /usr/home/USERNAME/sql_backup.sh 1>/dev/null 2>&1
#Создание резервной копии каждый день в час ночи.
0 1 * * * /usr/home/USERNAME/sql_backup.sh 1>/dev/null 2>&1
- сделать что-то > /dev/null 2>&1).
стандартные значения ввода и вывода для программ | |||
0 | ввод | STDIN | обычно получают от клавиатуры, или из программы |
1 | вывод | STDOUT | программа обычно выводит в стандартной вывод |
2 | ошибка | STDERR | вывод программой стандартной ошибки |
Есть три стандартных значения ввода и вывода для программ. Стандартный ввод обычно получают от клавиатуры, если это - диалоговая программа, или из программы, если она обрабатывает вывод другой программы. Программа обычно выводит в стандартной вывод, и иногда выводит в стандартную ошибку. Это три дескриптора файла называются: STDIN, STDOUT и STDERR.
Иногда их не именуют, а нумеруют! Встроенные нумерации для них соответственно - 0, 1 и 2. По умолчанию, если Вы не указывете номер или явно указываете номер 1, Вы имеете дело с STDOUT.