想在Linux系统下实现自动备份,应该如何操作呢,下面文章来给你分享一下自动备份代码。本代码根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件backup.txt。backup.txt这个文件比较好理解,就是一个text文件,它的每一行表示一个项目,也就是你需要备份的目录下面的文件或目录。
首先用root和密码ssH登录到准备备份的Vps上,默认的目录为/root。
第一步、安装emAiL发送组件,用如下命令:
yuminstallsendmailmutt
第二步、把每日自动备份脚本下载到Vps上的/root目录下,脚本下载地址:/shell/AutobackuptoFtp.sh ,
用命令:
wget/shell/AutobackuptoFtp.sh
第三步、用Vi命令编辑上一步下载下来的自动备份脚本AutobackuptoFtp.sh,修改的位置如下:脚本代码如下(注意修改Ftp服务器地址用户名密码):
#!/bin/bash#你要修改的地方从这里开始mYsQL_UseR=root#mysql用户名mYsQL_pAss=123456#mysql密码mAiL_to=admin@tmvps.cn#数据库发送到的邮箱Ftp_UseR=cat#ftp用户名Ftp_pAss=123456#ftp密码Ftp_ip=122.122.122.2#ftp地址Ftp_backup=backup#ftp上存放备份文件的目录,这个要自己得ftp上面建的web_dAtA=/home/www#要备份的网站数据#你要修改的地方从这里结束#定义数据库的名字和旧数据库的名字databakname=data_$(date+"%Y%m%d").tar.gzwebbakname=web_$(date+%Y%m%d).tar.gzolddata=data_$(date-d-5day+"%Y%m%d").tar.gzoldweb=web_$(date-d-5day+"%Y%m%d").tar.gz#删除本地3天前的数据rm-rf/home/backup/data_$(date-d-3day+"%Y%m%d").tar.gz/home/backup/web_$(date-d-3day+"%Y%m%d").tar.gzcd/home/backup#导出数据库,一个数据库一个压缩文件fordbin`/usr/local/mysql/bin/mysql-u$mYsQL_UseR-p$mYsQL_pAss-b-n-e'sHowdAtAbAses'|xargs`;do(/usr/local/mysql/bin/mysqldump-u$mYsQL_UseR-p$mYsQL_pAss${db}|gzip-9->${db}.sql.gz)done#压缩数据库文件为一个文件tarzcf/home/backup/$databakname/home/backup/*.sql.gzrm-rf/home/backup/*.sql.gz#发送数据库到email,如果数据库压缩后太大,请注释这行echo"主题:数据库备份"|mutt-a/home/backup/$databakname-s"内容:数据库备份"$mAiL_to#压缩网站数据tarzcf/home/backup/$webbakname$web_dAtA#上传到Ftp空间,删除Ftp空间5天前的数据ftp-v-n$Ftp_ip<
给脚本添加执行权限:
chmod+x/root/AutobackuptoFtp.sh
利用系统crontab实现每天自动运行:
crontab-e
输入以下内容:
0000***/root/AutobackuptoFtp.sh
其中00 00为时间分/小时,可自行修改,例如:30 12 ***,就是每天12.30运行这个脚本。
以下为lftp备份脚本:
#!/bin/bash
#定义数据库的名字和旧数据库的名字
databakname=data_$(date +"%Y%m%d").tar.gz
webbakname=web_$(date +%Y%m%d).tar.gz
#删除本地3天前的数据
rm -rf /home/backup/data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/web_$(date -d -3day +"%Y%m%d").tar.gz
#导出mysql数据库
/usr/local/mysql/bin/mysqldump -uroot -ppassword --databases db1 > /home/backup/databackup.sql
#压缩数据库
tar zcf /home/backup/$databakname /home/backup/databackup.sql
rm -rf /home/backup/databackup.sql
#压缩网站数据
tar zcvf /home/backup/$webbakname /home/wwwroot
#使用lftp同步备份目录
lftp -u user,password -e "mirror -R --only-newer /home/backup /backup" ftp.yoursite.cn
二、创建定时任务
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
crontab文件格式:
* * * * * command
minute hour day month week command
分 时 天 月 星期 命令
例如:每周每月每天1点0分执行备份脚本,日志放在backup.log文件中
0 1 * * * /bin/sh /home/script/backup.sh >> /home/script/backup.log 2>&1
若测试脚本是否正常运行,可以手动执行测试
3)、查询当前用户定时任务。