mysql - 数据库和 wordpress 备份 cron 作业

标签 mysql linux cron crontrigger

我想运行一个 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/

相关文章:

bash - crontab 和手动运行脚本之间的不同结果

mysql : select count when id have multiple same value

mysql - 将 mysql 查询转换为 sql server 查询

Linux 切字符串

linux脚本编写生成可执行文件

r - 为什么(或何时)Rscript(或更小)比 R CMD BATCH 更好?

MySQL 转储 CronJob

php - MySQL中的排行榜排名/海量数据整理

mysql - 一段时间内的不同计数

linux - 自动安装 libpam-ldap