crontab -l # 查看定时器任务
crontab -e # 编辑 定时器任务
* * * * * sql_db_back.sh
/sbin/service crond start // 启动服务
/sbin/service crond stop // 关闭服务
/sbin/service crond restart // 重启服务
如果 service crond start 报错 pid 存在的话可以 先查看所有pid 再kill
ps -ef | grep crond
kill pid
然后再 service crond restart 即
下面就是备份脚本代码
#!/bin/bash
# 设置变量
DATE=$(date +%F_%H-%M-%S)
HOST=172.16.100.200
DB=warehouse_manager
USER=xxxx
# 注意:不要在脚本中明文存储密码
PASS=xxxx
# 考虑使用环境变量或配置文件
PASS_VAR="your_secure_password_here" # 或者从文件、环境变量等读取
MAIL="maozhiwei@gansemicon.com"
BACKUP_DIR=/home/db_backup
SQL_FILE=${DB}_full_$DATE.sql
BAK_FILE=${DB}_full_$DATE.zip
# 检查并创建备份目录
[ -d "$BACKUP_DIR" ] || mkdir -p "$BACKUP_DIR"
# 切换到备份目录
cd "$BACKUP_DIR" || exit 1
# 执行 mysqldump 并检查是否成功
if mysqldump -h$HOST -u$USER -p$PASS --single-transaction --routines --triggers -B $DB > $SQL_FILE; then
# 如果 mysqldump 成功,则压缩文件并删除原始 SQL 文件
if zip "$BAK_FILE" "$SQL_FILE" && rm -f "$SQL_FILE"; then
echo "$DATE: Backup successful and compressed."
else
echo "$DATE: Failed to compress backup file." | mail -s "Backup DB compression failed" $MAIL
exit 1
fi
else
# 如果 mysqldump 失败,则发送邮件
echo "$DATE: Backup DB failed!" | mail -s "Backup DB exec" $MAIL
exit 1
fi