使用crontab进行定时数据备份python
定时备份数据库:
1.既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足致使备份失败,数据丢失的恶果!
存储到当前磁盘这是最简单,倒是最不推荐的;服务器有多块硬盘,最好是把备份存放到另外一块硬盘上;有条件就选择更好更安全的存储介质;mysql
df -h
2.建立备份目录:sql
cd /home mkdir backup cd backup
3.建立备份Shell脚本:shell
vi bkDatabaseName.sh #!/bin/bash mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 对备份进行压缩
四、添加可执行权限数据库
chmod u+x bkDatabaseName.sh
五、添加定时任务安全
crontab -e */1 * * * * /home/backup/bkDatabaseName.sh
sudo select-editor 修改默认编辑器bash
cron服务有关的调用命令以下服务器
service cron start //启动服务 service cron stop //关闭服务 service cron restart //重启服务 service cron reload //从新载入配置 service cron status //查看服务状态
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 commanddom
还可使用下列特殊字符,更细致的设定时间
星号(*):表明全部可能的值,例如month字段若是是星号,则表示在知足其它字段的制约条件后每个月都执行该命令操做。
逗号(,):能够用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):能够用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):能够用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线能够和星号一块儿使用,例如/10,若是用在minute字段,表示每十分钟执行一次。
设置执行频率为8-23点每小时的第5分钟执行一次:编辑器
5 8-23/1 * * * /home/myshell.sh
mysql备份:
#!/bin/bash PATH=$PATH /usr/bin/mysqldump -ubms -pbms@2018 jh_rule > /home/weidj/jh_rule-backup/mysql/jh_rule_mysql_$(date +%Y%m%d_%H%M%S).sql */1 * * * * /home/weidj/mysql_bak.sh
postgres备份
#!/bin/bash PATH=$PATH cur_time=$(date '+%Y%m%d_%H%M%S') export PGPASSWORD=123456 echo "备份数据库":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql pg_dump -U postgres jh_rule -h 127.0.0.1 -p 15432 > /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql echo "压缩数据库":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql tar jcvf /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql.tar.bz2 /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql echo "删除未压缩文件":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql rm -rf /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql */30 * * * * /home/weidj/postgres_bak.sh