Задача cron для резервного копирования базы данных в linux / php

Я новичок в работе linux cron, я использую mysql DB, мое имя базы данных finaldb, я хочу использовать эту базу данных каждый час,

У меня есть папка с именем dailbackup, в ней у меня есть папка по дате мудрая, в этой папке у меня есть резервный файл mysql db

имя, подобное final_db_9.sql (эта резервная копия была сделана утром 9 утра), final_db_13.sql (эта резервная копия, сделанная в полдень 1pm,

этот процесс в настоящее время выполняется вручную, возможно ли автоматизировать его, любые идеи, предложения,

Создайте скрипт PHP, содержащий следующее:

$dbFile = 'final_db'.date('H').'.sql.gz'; $dbHost = 'localhost'; // Database Host $dbUser = 'username'; // Database Username $dbPass = 'password'; // Database Password exec( 'mysqldump --host="'.$dbHost.'" --user="'.$dbUser.'" --password="'.$dbPass.'" --add-drop-table "finaldb" | gzip > "'.$dbFile.'"' ); 

Создайте где-нибудь скрипт для создания ваших скопированных резервных копий, например, этот (непроверенный, но должен работать):

 #!/bin/bash BKPDIR=dailbackup # You must use absolute path here DB=finaldb USERNAME=myusername PASSWORD=mypassword BKPFILE=${BKPDIR}/`date +%Y-%m-%d`/final_db_`date +%H`.sql # Create backup mysqldump --user=${USERNAME} --password=${PASSWORD} ${DB} | gzip -c > ${BKPFILE} # Remove older backups (> 7 days), # unless you want to run out of drive space find ${BKPDIR} -mtime +7 -print0 | xargs -0 rm -rf 

Затем настройте этот скрипт на выполнение как почасовой cronjob:

 crontab -e 0 * * * * /absolute-path-to-where-you-saved-the-script 
 crontab -e 

положив это:

 the_date='date +%Y%m%d' the_hour='date +%H' 0 * * * * mysqldump OPTIONS > /dailbackup/`$the_date`/final_db_`$the_hour`.sql 

указанный выше cron позволяет вам резервировать базу данных каждый час и использовать имя файла %H as sql

Непроверенный один вкладыш:

 mysqldump -u*user* -p*password* -P*dbport* -h localhost finaldb > /.../dailbackup/final_db_$(date +%Y-%m-%d_%H_%M).sql 

просто добавьте его в свое задание cron или оберните его в скрипт, и вы закончите

Да, конечно, вы можете это сделать, пока ваш сервер mysql встает и слушает :). Вам нужно будет создать оболочку или скрипт perl и использовать править crond, используя следующую команду (в Fedora):

 crontab -e

Компоненты вашего задания cron:

1) Путь к вашему скрипту (исполняемый файл)

2) Протокол (00-59)

3) Часы (00 – 23)

4) Месяц (01-12)

5) День (01-31)

6) День недели (00 -06 с 00 по воскресеньям)

Пример :: Вы наблюдали за запуском скрипта test_pl каждый день в 1200

запись в crontab будет ::

00 12 * * * / home / jok / test_pl