2018-11-09  192 views 发表评论

简单的Linux备份脚本

 标签:  

image.png

   

 俗话说的好“亡羊补牢,为时不晚”,这特别适合形容我这次遇到的情况,大概情况就是之前给一个客户做了一个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

给我留言

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: