1

这是一个基本问题.. 我正在尝试编写一个非常简单的脚本来每小时备份我的 wordpress 数据库..

#!/bin/sh
#
# This script do an hourly backup of WordPress DB

# Set global parameters
WPROOT=/home/mydomain/public_html
WPBKUPS=/usr/home/mydomain/db_backups
SITEURL=`wp option get siteurl | awk -F/ '{print $3}'`
BKNAME="$WPBKUPS/`date +%Y-%m-%d.%H%M`-$SITEURL"

# change directory
#cd $WPROOT
#cd /usr/local/www/production/httpdocs/wpsite
wp db export --allow-root - | gzip -9 > $BKNAME.sql.gz

# Stop build-up of loads of older files with exec rm \o/
find "$WPBKUPS" -mtime +1 -exec rm {} \;

问题 1:我应该使用选项 --add-drop-table 吗?我的代码有什么区别

问题 2:目前脚本驻留在 wproot 中。如何更改脚本以使脚本不在面向公众的目录中?

谢谢

4

1 回答 1

1

问题1: --add-drop-table它会添加Add DROP TABLE statement before each CREATE TABLE statement. 在恢复它时,表已经存在。

你可以在这里找到更多关于这个的链接

问题2: mysqldump –-user [user name] –-password=[password] [database name] > [dump file]

例如: /usr/bin/mysqldump --user="root" --password="root" "wp_db" > wp_db.sql

将此命令添加到脚本文件中,然后将其存储在WordPress根目录之外。

使脚本从终端可执行,

chmod +x /path/to/yourscript.sh

打开您的个人 crontab 为

EDITOR=gedit crontab -e

并在其中附加以下行以每小时运行一次脚本。

0 */1 * * *  /path/to/yourscript.sh 
于 2017-06-22T10:11:03.123 回答