我想运行一个 cron 作业,每天从 hostgator cpanel 备份我的 mysql 数据库和 wordpress 文件。
我找到了一个示例脚本并根据我的信息编辑了参数,但它似乎无法正常工作。我对 cron 作业没有太多经验,所以我不确定我的所有问题是什么。
我将名为 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 相同的 PATH
变量,因此无法始终找到诸如 mysqldump
或甚至 tar
。
我建议使用每个命令的完整路径,即:/usr/bin/mysqldump
而不仅仅是 mysqldump
。您可以使用 which
命令轻松确定路径。
$ which mysqldump
/usr/bin/mysqldump
关于mysql - 数据库和 wordpress 备份 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033546/