我对 cron Job 命令有疑问。
我想每天加载我的 WordPress 站点的备份和 mysql 数据库备份。因此它会将所有设置恢复到我的 WordPress 站点和 mysql 数据库的备份中。
但我找不到可用于 cron 作业的所有可能命令。或者我只输入备份文件所在的路径?
我不使用 php 代码,因为我使用直接管理。
希望尽快收到您的来信!
最佳答案
cron 可以触发各种东西。 一般来说,一切都是可执行的。 我建议编写一个备份 bash 脚本或其他东西。
- 使用 mysqldump 转储数据库。
- 使用 rsync 或 git 备份您的网站。
另外:您不想在生产机器上备份您的内容。如果它坏了,一切都消失了!
将备份 cronjob 放入/etc/cron.d/webbackup 中,文件内容如下:
# m h dom mon dow user command
25 6 * * * root path/to/your/backupscript.sh
#
然后像这样编写一个backupscript.sh(这是伪代码而不是实际的脚本)
文件:backupscript.sh
#!/bin/bash
path/to/mysqldump.sh
rsync -avz /your/website/ username@backupserver:/path/to/backupfolder/
rsync -avz /your/mysqldump/folder/ username@backupserver:/path/to/mysqlbackupfolder/
文件:mysqldump.sh(这不是我的,但我修改了它)
#!/bin/bash
# TARGET: Backup-Ziel
# IGNORE: Liste zu ignorierender Datenbanken (durch | getrennt)
# CONF: MySQL Config-Datei, welche die Zugangsdaten enthaelt
TARGET=/var/backups/mysql
IGNORE="phpmyadmin|mysql|information_schema|performance_schema|test"
CONF=/etc/mysql/debian.cnf
if [ ! -r $CONF ]; then /usr/bin/logger "$0 - auf $CONF konnte nicht zugegriffen
werden"; exit 1; fi
if [ ! -d $TARGET ] || [ ! -w $TARGET ]; then /usr/bin/logger "$0 - Backup-Verze
ichnis nicht beschreibbar"; exit 1; fi
DBS="$(/usr/bin/mysql --defaults-extra-file=$CONF -Bse 'show databases' | /bin/g
rep -Ev $IGNORE)"
NOW=$(date +"%Y-%m-%d")
for DB in $DBS; do
/usr/bin/mysqldump --defaults-extra-file=$CONF --skip-extended-insert --skip
-comments $DB > $TARGET/$DB.sql
done
if [ -x /usr/bin/git ] && [ -d ${TARGET}/.bzr/branch ]; then
cd $TARGET
/usr/bin/git add -A
/usr/bin/git commit -m "$NOW"
else
/usr/bin/logger "$0 - bzr nicht verfuegbar oder Backup-Ziel nicht unter Versio
nskontrolle"
fi
/usr/bin/logger "$0 - Backup von $NOW erfolgreich durchgefuehrt"
exit 0
为此,您需要研究 ssh 和 ssh-copy-id。 有更好的解决方案,例如 git 等,但这可能可以帮助您入门。
希望对您有一点帮助...
关于mysql - cronjob加载备份命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568313/