linux的路上_linux实战笔记七:cron配置定时任务(pg数据库备份实战)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wfl_137724/article/details/84874231

以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,内容如下 

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

定时任务:
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 自行查看。

猜你喜欢

转载自blog.csdn.net/wfl_137724/article/details/84874231
今日推荐