Linux 定时器以及数据库备份设置

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

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,定期备份数据库是一个关键任务,确保数据安全。Linux环境下,常用的方法是结合shell脚本、数据库管理工具(如MySQL的mysqldump或pg_dump for PostgreSQL)以及调度工具cron来实现数据库的自动备份。以下是基本的步骤: 1. **选择备份工具**: - MySQL:可以使用`mysqldump`命令创建SQL脚本备份。 - PostgreSQL:使用`pg_dump`命令。 - 其他数据库(如MongoDB, Oracle等)也有相应的备份工具。 2. **编写shell脚本**: - 创建一个shell脚本(例如`backup.sh`),内容通常包括选择数据库、执行备份命令并保存到指定路径。 ``` #!/bin/bash mysqldump -u [username] -p[password] [database_name] > /path/to/backup/directory/db_backup.sql ``` 对于PostgreSQL: ``` pg_dump -U [username] -F c -b -v [database_name] > /path/to/backup/directory/db_backup.dump ``` 3. **设置crontab**: - 使用`crontab -e`编辑用户的定时任务计划,添加一行类似以下的内容,指定每天的特定时间进行备份: ``` 0 2 * * * /path/to/backup/script/backup.sh ``` 这里解释一下定时器含义:`0 2 * * *`分别代表分钟(0)、小时(2)、月份中的日期(*,所有日期)、星期(*,所有星期)和年份(*,所有年份),表示每天凌晨2点执行备份。 4. **权限和日志**: - 确保备份脚本有执行权限,并且备份目录要有足够的写入权限。 - 可能需要设置日志文件记录备份过程,以便追踪和排查问题。 5. **验证和测试**: 定期检查备份是否成功,可以通过运行备份脚本来查看结果,或者恢复一小部分数据验证备份的数据完整性和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值