mysql - cronjob加载备份命令

标签 mysql wordpress cron command backup

我对 cron Job 命令有疑问。

我想每天加载我的 WordPress 站点的备份和 mysql 数据库备份。因此它会将所有设置恢复到我的 WordPress 站点和 mysql 数据库的备份中。

但我找不到可用于 cron 作业的所有可能命令。或者我只输入备份文件所在的路径?

我不使用 php 代码,因为我使用直接管理。

希望尽快收到您的来信!

最佳答案

cron 可以触发各种东西。 一般来说,一切都是可执行的。 我建议编写一个备份 bash 脚本或其他东西。

  1. 使用 mysqldump 转储数据库。
  2. 使用 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/

相关文章:

php - 将 Tab1 中的列名称与 Tab2 的 1 列值连接起来

javascript - 在 WordPress Gutenberg block 中调用 DateTimePicker

php - 将永久链接更改为 'Postname' 导致找不到页面

Php, Mysql Select from table where row = ?有可能的?

asp.net - 总结gridview

mysqldump cron 不能使用字符 >

git pull 的 Cron 作业

ubuntu - "which nvm"不见了

mysql - 如何配置 slick 3.2 通过 typesafe 配置包连接到 mysql?

php - 自定义分类分页 Wordpress