Я новичок в работе 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