Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库和wordpress备份cron作业_Mysql_Linux_Cron_Crontab_Crontrigger - Fatal编程技术网

Mysql 数据库和wordpress备份cron作业

Mysql 数据库和wordpress备份cron作业,mysql,linux,cron,crontab,crontrigger,Mysql,Linux,Cron,Crontab,Crontrigger,我想运行一个cron作业,每天从hostgator cpanel备份一次mysql数据库和wordpress文件 我找到了一个示例脚本,并用我的信息编辑了参数,但它似乎工作不正常。我对cron jobs没有太多经验,所以我不确定我所有的问题都是什么 我有一个名为backups.sh的.sh文件,保存在主目录中,还有一个名为backups的文件夹,其中包含子文件夹database和wordpress 这是.sh文件。我用凭据替换了{my info},并填写了数据库信息的所有内容: #!/bin/b

我想运行一个cron作业,每天从hostgator cpanel备份一次mysql数据库和wordpress文件

我找到了一个示例脚本,并用我的信息编辑了参数,但它似乎工作不正常。我对cron jobs没有太多经验,所以我不确定我所有的问题都是什么

我有一个名为backups.sh的.sh文件,保存在主目录中,还有一个名为backups的文件夹,其中包含子文件夹database和wordpress

这是.sh文件。我用凭据替换了{my info},并填写了数据库信息的所有内容:

#!/bin/bash
# Script Function:
# This bash script backups up the db everyday dependent on 
# when you set the cron job to run with a file name time stamp 
# and tar.gz zips the file.
# The db will be saved in /backups/database/
# Db backups older than 5 days will be deleted.\
#[Changes Directory]
cd /home/{my info}/backups/

#[Old DB Deletion and Files Script]
find /home/{my info}/backups/database -name "*.tar.gz" -mtime +5 -exec rm -f {};
find /home/{my info}/backups/wordpress -name "*.tar.gz" -mtime +5 -exec rm -f {};

#[Stamps the file name with a date]
TIMESTAMP=`date +%m-%d-%y-%H%M`

#[DB Backup Scripts]
# DB Name
HOST=localhost
DBNAME=""
USER=""
PASSWORD=""
DUMP_PATH=/home/{my info}/backups/database/
BACK_PATH=/home/{my info}/backups/wordpress/
mysqldump --opt -c -e -Q -h$HOST -u$USER -p$PASSWORD $DBNAME > $DBNAME.sql
tar czpf $DUMP_PATH/$DBNAME.$TIMESTAMP.tar.gz $DBNAME.sql

rm -f $DBNAME.sql
#Backing up Wordpress files @ root
tar czf $BACK_PATH/wordpress.$TIMESTAMP.tar.gz /home/{my info}/public_html/mydomain
以下是我对命令行所做的操作:

/bin/sh ~/backups.sh
在cron作业执行后,我收到一封电子邮件,它通知我说,
“没有这样的文件或目录”,以及一堆未找到的命令。

cron
并不总是具有与登录shell相同的
路径
变量,因此无法始终为
mysqldump
或甚至
tar
之类的内容找到可执行文件

我建议使用每个命令的完整路径,即:
/usr/bin/mysqldump
,而不仅仅是
mysqldump
。您可以使用
which
命令轻松确定路径

$ which mysqldump
/usr/bin/mysqldump

cron
并不总是具有与您的登录shell相同的
路径
变量,因此无法始终为
mysqldump
或甚至
tar
之类的内容找到可执行文件

我建议使用每个命令的完整路径,即:
/usr/bin/mysqldump
,而不仅仅是
mysqldump
。您可以使用
which
命令轻松确定路径

$ which mysqldump
/usr/bin/mysqldump

您可以使用下面的bash脚本来备份wordpress网站和数据库。详情请点击此处->


您可以使用下面的bash脚本来备份wordpress网站和数据库。详情请点击此处->


你确定目录备份在那里吗?是的。我将把所有内容移动到public_html目录,修改.sh文件,看看它是否有效。你确定目录备份在那里吗?是的。我将把所有内容移到public_html目录,修改.sh文件,看看它是否有效。@Sammitch,我修改了它,它似乎有效。如果你或其他人不介意的话,我有几个问题要问。首先,我将shell脚本和backups文件夹移动到public_html根目录。我还使用完整路径添加了您提到的内容,但遗漏了$mysqldump(想先试试这个)。运行cron作业,数据库和wordpress文件都得到备份。然而,我收到一封电子邮件说:find:missing-argument to
-exec'find:missing-argument to
-exec'tar:从成员名称中删除前导“/”。我应该为此担心吗?不要担心tar:从成员名称中删除前导“/”。,这是tar保护您以后不会射中自己的脚。
find
中的错误很奇怪,可能意味着脚本没有删除5天以上的备份。很高兴知道。目前还没有超过5天的备份文件,所以这可能就是我收到错误消息的原因。不知道。@Sammitch,我修改了它,它似乎起作用了。如果你或其他人不介意的话,我有几个问题要问。首先,我将shell脚本和backups文件夹移动到public_html根目录。我还使用完整路径添加了您提到的内容,但遗漏了$mysqldump(想先试试这个)。运行cron作业,数据库和wordpress文件都得到备份。然而,我收到一封电子邮件说:find:missing-argument to
-exec'find:missing-argument to
-exec'tar:从成员名称中删除前导“/”。我应该为此担心吗?不要担心tar:从成员名称中删除前导“/”。,这是tar保护您以后不会射中自己的脚。
find
中的错误很奇怪,可能意味着脚本没有删除5天以上的备份。很高兴知道。目前还没有超过5天的备份文件,所以这可能就是我收到错误消息的原因。不知道