简单的Linux备份脚本
俗话说的好“亡羊补牢,为时不晚”,这特别适合形容我这次遇到的情况,大概情况就是之前给一个客户做了一个H5网站,是家装相关的,每天都有工人创建订单何上传图片,有一次在一个深夜做维护的时候,看错了目录,直接把图片给删掉了,后来恢复了些,但是还是有一部分没有恢复的,这就很尴尬了!如果做了备份的话这种问题就很容易恢复,其实造成这种问题的主要原因是自己意识问题,觉得一个小项目应该不会有什么问题,但现实总会出乎你的意料,后来就赶紧写了个简单的备份脚本,以防后患。
可以创建一个专门与备份相关的目录:
mkdir -p /backup/project /backup/database /backup/bashfile #project 用来存放项目备份 database 存放数据库备份文件 bashfile 作为备份脚本的存放目录
在bashfile文件下创建两个脚本文件project.sh和database.sh
project.sh内容如下:
#!/bin/bash dir_time=`date +%Y-%m-%d` msg_time=`date +%Y-%m-%d-%H:%M:%S` cp -r /home/www/test /backup/project/test-$dir_time.bak logmsg="于 $msg_time 备份test项目文件成功!" echo $logmsg >> /data/logs/test_auto_backup.log
database.sh内容如下:
#!/bin/bash file_time=`date +%Y-%m-%d` msg_time=`date +%Y-%m-%d:%H:%M:%S` mysqldump -hlocalhost -uroot -p'passwd' --all-databases > /backup/database/test-$file_time.sql logmsg="于 $msg_time 备份test SQL文件成功!" echo $logmsg >> /data/logs/lanling_auto_backup.log
两个脚本编辑好后就用到神奇crontab了,使用命令crontab -e打开编辑,加入如下两个任务,让脚本在每周日的凌晨1点执行,保存退出。
00 01 * * 7 /backup/bashfile/mysqldump.sh >> /dev/null 2>&1 00 01 * * 7 /backup/bashfile/backup.sh >> /dev/null 2>&1