Cronjob加载备份命令

时间:2014-12-19 14:44:05

标签: mysql wordpress cron command backup

我对cron Job命令有疑问。

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

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

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

希望尽快收到你的来信!

1 个答案:

答案 0 :(得分:1)

cron可以解雇各种各样的东西。 通常一切都是可执行的。 我建议写一个备份bash脚本或其他东西。

  1. 使用mysqldump转储数据库。
  2. 使用rsync或git备份您的网站。
  3. 另外:您不想在生产机器上备份您的东西。如果它打破了一切都消失了!

    将备份cronjob放在/etc/cron.d/webbackup中,文件内容为:

    # m h dom mon dow user  command
    25 6    * * *   root    path/to/your/backupscript.sh
    #
    

    然后像这样写一个backupscript.sh(这是伪代码而不是实际的脚本)

    file: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/
    

    file: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等,但这可能是让你入门的东西。

    我希望这有点帮助...