Linux“自动备份/删除”MYSQL

来源:互联网 发布:键盘美化软件下载 编辑:程序博客网 时间:2024/05/01 15:31
Linux“自动备份”MYSQL

1、创建备份文件夹

#cd /data0/mysql/3306
#makedir backup

2、编写运行脚本

#vi autobackup

写入以下内容:

filename=`date +%Y%m%d`

mysql_bin_dir/mysqldump –d dataname -u user -ppassword| gzip > /data0/mysql/3306/backup/mysql$filename.gz

保存退出

说明:

(1)mysql_bin_dir:mysql的bin路径;

(2)dataname:数据库名;

(3)user:数据库用户名;

(4)password:用户密码;

(5)mysql:自定义备份文件前缀标识。

如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为mysql20090506.gz的形式。

3、为脚本添加执行权限

#chmod +x autobackup

4、让crontab来完成定期执行的任务

这一步中,Redhat的方法会不一样,后面专门给出。

编辑crontab:

#vi /etc/crontab

在最后一行中加入:

01 4 * * * * /www/autobackup

每天4点运行脚本,也可以修改4为其他指定时间。

Redhat方法:

Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天; /etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。

Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。

5、重启crontab

#/etc/rc.d/init.d/crond restart

完成



#查找并删除backup目录下3天前生成并且文件名中有"."的所有文件
find /data0/mysql/3306/backup/ -mtime -3 -name "*.*" -exec rm -rf {} \;

ps:-pPASSWORD 中不要有空格,即-p与你的MySQL密码直接相连后面也不要空格。

例:删除一个月以前的log,exec有溢出。用xargs
find / -name "*.log" -ctime +30 | xargs rm {}\; 即可。
删除一个月之内的log file
find / -name "*.log" -ctime -30 | xargs rm {}\;
0 0