自动化系列_cron配置定时任务(pg数据库备份实战)

以postgresql数据库备份为例。

1. vim /data/backup.sh  编写测试脚本backup.sh

内容如下,需要注意的是crontab并不能识别/etc/profile配置的环境变量,在执行crontab用户的家目录配置环境变量不确定有没有用,索性就用绝对路径了。

#普通备份
#/usr/pgsql-10/bin/pg_dump -h 127.0.0.1 -p 5432 -d backup_test -U admin > /data/backup/backup_$(date +%Y%m%d_%H%m%S).bak  
#压缩备份,需要用pg_restore还原
/usr/pgsql-10/bin/pg_dump -F c -Z 9 "host=127.0.0.1 port=5432 user=admin  password=123456 dbname=backup_test" > /data/backup/backup_$(date +%Y%m%d_%H%m%S).tar

 

2. crontab -e  编辑crontab,内容如下 

cat /etc/crontab 查看定时任务配置格式

* * * * * : 从左到右依次表示分、时、天、月、星期

定时任务:
0 01 * * * sh /data/backup.sh                                                              ###每天晚上凌晨一点执行备份脚本
#0 0 * * * find /data/backup -mtime +5 -name '*.bak' -exec rm -rf {} \;   ###保留7天的备份
#0 0 * * * rm -rf $(find /data/backup -mtime +5 -name '*.bak');              ###保留7天的备份
0 0 * * * find /data/backup -mtime +5 -name '*.bak' | xargs rm rf           ###保留7天的备份(建议) 

3. crontab -l  查看已配置的定时任务

备注:pg_dump普通备份用psql就可以还原,压缩备份只能通过pg_restore还原。如

#还原

psql -h 127.0.0.1 -p 5432 -U admin -d restore_test < /data/backup/backup_20181206_010400.tar
pg_restore -h 127.0.0.1 -p 5432 -U admin -d restore_test -F c -c< /data/backup/backup_20181206_010400.tar

对应选项可通过pg_restore --help 自行查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值