【问题标题】:Cronjob load backup commandcronjob 加载备份命令
【发布时间】:2015-02-18 12:33:24
【问题描述】:

我对 cron Job 命令有疑问。

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

但我找不到可用于 cron 作业的所有可能命令。还是直接输入备份文件的存放路径?

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

希望尽快收到您的来信!

【问题讨论】:

标签: mysql wordpress cron command backup


【解决方案1】:

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 等,但这可能会帮助您入门。

希望对你有所帮助...

【讨论】:

  • 您好克里斯蒂安,感谢您的回复。但是我可以在不使用 php 代码的情况下加载备份或文件吗?
  • 你的意思是如何恢复备份?如果是这样,您将需要反向执行两件事:1. 从 mysql-dump 恢复您的数据库 2. 从 rsync 恢复您的文件系统
  • 不,我想加载备份。所以恢复的相反的事情。我想从 wordpress 网站 1 做一个备份。所有信息、设计、数据库、sql 等。我想每天在 wordpress 网站 2 上加载所有这些信息。所以我之前更改的所有设计都会得到恢复。希望这很清楚,因为我的英语不是最好的..
  • 所以你想镜像站点并让它们都运行? site1 和 site2 在同一个服务器上吗?如果是这样,您将需要复制更多涉及的数据库和连接,然后将您的代码复制到第二个网络空间。
猜你喜欢
  • 2017-11-01
  • 2013-11-05
  • 2016-01-09
  • 2021-04-16
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
相关资源
最近更新 更多