30 04 * * * /data/jiaoben/mysql_backup.sh 每天4点执行脚本 qq571031767
数据作为网站及网络的灵魂,及时做好数据备份才是天道。
否则,某天一个错误操作导致损失几百上千万甚至更多更多~~ 好可怕~ 因为我就不小心错误操作过
好啦,怎么备份,怎么处理我来教你
脚本文件 mysql_backup.sh 上传后记得修改此文件的权限
!/bin/bash
#db_password=`cat /data/www/mysql_password`
db_name='sm'
backup_dir='/data/www/mysqlback/'
current_time=$(date +'%Y-%m-%d_%H%M%S')
filepath=$backup_dir$current_time'.sql.gz'
tables='cmstop_article cmstop_baoliao cmstop_content cmstop_qudonghao_user cmstop_admin cmstop_qudonghao_comment'
n=43200 #43200分钟 也就是30天
#此处没有使用 $db_password $db_user, 已经写入到配置文件中
echo '开始导出数据库...'
mysqldump --defaults-extra-file=/data/jiaoben/my_mysql.cnf $db_name $tables | gzip > $filepath
echo '导出成功,文件名为: '$filepath
#find . -mtime +30 -type f -name "*.sql.*" -exec rm -f {} \; 未经测试
find $backup_dir -maxdepth 1 -type f -mmin +$n -name "*.sql.gz" | xargs rm -rf #亲测 +n 代表n分钟 删除30天前的备份
# 命令: find . -mtime +N -type f -name "*.log.*" -exec rm -f {} \;
# 简单解释: find .查询 ;
# -mtime 规定时间的一个参数,固定格式;
# +N : N是指N天前;
# -type f :类型文件;
# -name: 名称;
# "*.log.*" :要删除的文件的后缀名称,如果是删除全部,可以写"*";
# -exec rm -f {} \ :固定格式,递归删除前面条件约束下的文件;
#*/1 * * * * /www/jiaoben/mysql_backup.sh 定时任务-每分钟执行脚本 /www/jiaoben/mysql_backup.sh
# 30 04 * * * /data/jiaoben/mysql_backup.sh 每天4点执行脚本 qq571031767
配置文件 my_mysql.cnf
[mysqldump]
max_allowed_packet= 400M
host=192.168.0.4
user=yourmysqluser
password='yourmysqlpass'
[mysql]
host=192.168.0.4
user=yourmysqluser
password='yourmysqlpass'
最后添加定时任务
30 04 * * * /data/jiaoben/mysql_backup.sh 每天4点执行脚本 qq571031767
好啦,上述就是linux下的 数据库备份脚本,本篇讲了如何备份mysql下的特定表文件,如果想备份整个数据库,只需要修改上述的tables
crontab -e 编辑定时任务哦