linux实现数据库定时备份任务

本文介绍了如何在Linux系统中设置数据库定时备份任务。通过crontab编辑新的任务,结合mysqldump命令实现数据库的备份,并创建一个shell脚本来自动化此过程。备份文件会被压缩并按日期命名,同时通过crontab定时执行脚本,确保每天自动备份。最后,文章还提供了检查和调试crontab任务的方法。

使用命令实现一个数据库定时备份任务:

***\一、常用的命令如下:

1、编辑一个新的crontab任务

crontab -e

2、查看编写后的crontab任务

crontab -l

3、重启contab任务服务

service crond restart

4、查看contab任务状态

service crond status

5、重新载入配置

service crond reload

6、关闭服务

service crond stop

7、启动服务

service crond start

8、crontab时间格式

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr …
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
---------------------

二、使用命令实现一个数据库定时备份任务:

*1:创建备份的目录*

cd /home

mkdir backup

cd backup

*2:创建备份的shell脚本*

vi backup.sh

#!/bin/bash
#备份保存路径
backup_dir=/home/yiqiliuliu/mysqlbackup
#日期
dd=date +%Y%m%d%H
#用户名
username=“root”
#密码
password=“123456”
#将要备份的数据库
database_name=“hcgx”

#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.dump
#mysqldump命令所在路径,可以先find / -name mysqldump 查找出来位置

#在这边要注意一下,执行mysqldump的时候,一定要加上完整的路径,一般这种备份文件的脚本都是放在crontab中,定时执行的。而你如果直接使用mysqldump,不加上完整的路径的话,会出现**crontab的定时任务不能自动执行,但是手动执行脚本一直能成功,这就涉及到crontab的环境变量问题了.
/usr/local/mysql/bin/mysqldump -uusername−pusername -pusernameppassword $database_name | gzip > backupdir/backup_dir/backupdir/database_name-$dd.sql.gz

#写创建备份日志
echo "create backupdir/backup_dir/backupdir/database_name-$dd.sql.gz " >> $backup_dir/log.txt

#找出需要删除的备份

find $backup_dir/ -name “*.sql.gz” -type f -mtime +1 -exec rm {} ;

*3:给sh添加可执行的权限*

chmod` `u+x `backup`.sh

*4:添加定时任务*

检测或安装 crontab

确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

执行命令:、

crontab -e

输入以下内容并保存:这时就像使用vi编辑器一样,可以对计划任务进行编辑。

* * * * * /home/yiqiliuliu/yiqiliuliu.sh

每分钟执行一次定时任务

*5:测试任务是否执行*

很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了!

如果任务执行失败了,可以通过以下命令查看任务日志:

# tail -f /var/log/cron

数据库备份脚本
#!/bin/bash
export PGPASSWORD='lty@100729'
curdate=`date +%F-%H-%M-%S`
dir=/home/nianxh/pgbak
dumpdir=/usr/local/postgresql-9.5/bin/pg_dump
dbase=huanghua

if [ ! -d $dir ];then
    mkdir -p $dir
    
fi
/usr/local/postgresql-9.5/bin/pg_dump  --host 192.168.1.3 --port 5432 --username lantaiyuan -d huanghua |gzip > $dir/$dbase$curdate.dmp.gz

#$dumpdir $dbase   |gzip > $dir/$dbase$curdate.dmp.gz

find $dir -ctime +15  -name  "*.gz"  | xargs rm -f
cronttab定时任务
0 8 * * * /home/nianxh/pgbak/pagbak.sh #每天8点定时备份
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值