Linux VPS 备份到FTP脚本

有VPS的朋友可以参照如下脚本做些备份工作

该脚本会自动删除旧的备份文件包,防止空间被撑爆

提前的准备

1. 备份暂存文件夹/home/wwwbackup

2. ftp工具,这里使用的是功能强大的lftp

3. 你得有个空间足够得FTP

#!/bin/bash
#Function: Backup website and mysql database
#Author: tony
#Website: http://www.crazycen.com
#Upadte:2014-12-28

######~Set Directory you want to backup~######
BackupName=crazycen #填写备份任务名称
Backup_Dir=/home/wwwroot/crazycen.com #填写要备份的网站目录

######~Set MySQL UserName and password~######
MYSQL_UserName=mysqluser #填写mysql用户名
MYSQL_PassWord=mysqlpassword #填写mysql密码

######~Set MySQL Database you want to backup~######
Backup_Database_Name=database

######~Set FTP Information~######
FTP_HostName=8.8.8.8 #填写FTP地址
FTP_UserName=ftpusername #填写FTP用户名
FTP_PassWord=ftppassword #填写FTP密码
FTP_BackupDir=wwwbackup #填写FTP备份目标目录

#Values Setting END!

TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
TodayDBBackup=db-*-$(date +"%Y%m%d").sql
OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql

tar zcf /home/wwwbackup/www-$BackupName-$(date +"%Y%m%d").tar.gz -C $Backup_Dir --exclude=soft
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name > /home/wwwbackup/db-$Backup_Database_Name-$(date +"%Y%m%d").sql

rm -f /home/wwwbackup/$OldWWWBackup
rm -f /home/wwwbackup/$OldDBBackup

cd /home/wwwbackup/

lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
cd $FTP_BackupDir
mrm $OldWWWBackup
mrm $OldDBBackup
mput $TodayWWWBackup
mput $TodayDBBackup
bye
EOF

 

脚本写好,大家记得添加crontab

0 1 * * 0 /root/tools/backup.sh

手动运行

chmod +x /root/tools/backup.sh && ./root/tools/backup.sh

脚本下载地址:backup.sh

点赞
  1. 胖哥说道:

    很棒的脚本,回头试试

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据