备份网站数据,程序和数据库都备份需要知道,数据库地址账号密码,ftp的信息
#!/bin/bash #这是一个简单的网站数据备份脚本 #包括sql,文件备份 #服务器端需要安装mysql,ftp软件 #备份端需要安装mysql,lftp,tar #1.定义数据库连接、目标库信息 DB_USER="dbuser" DB_PASS="dbpass" DB_HOST="127.0.0.1" DB_NAME="123456" #2.FTP信息定义 FTP_HOST="127.0.0.1" FTP_USER="FTP_USER" FTP_PASS="FTP_PASS" FTP_PORT="21" #远程文件夹地址 FTP_PATH="/www" #3.定义备份目录、时间、文件名主体 #定义文件名称前面部分 BF_TIME="$(date +%Y%m%d)" NAME_1="$DB_NAME-$BF_TIME" #mysql软件位置 DB_BASHSHELL="/usr/local/mysql/bin/mysqldump" #lftp软件位置 FTP_BASHSHELL="/usr/bin/lftp" #打包软件位置 TAR="/bin/tar" #本地备份存放文件夹地址 BAK_DIR="/home/www/bakyqs/" #备份在本地保留天数 days=3 cd $BAK_DIR if [ ! -d $BF_TIME ] ;then mkdir $BF_TIME fi #4.mysql先导出.sql脚本 cd $BF_TIME echo "backup_SQL job start" $DB_BASHSHELL -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $NAME_1.sql echo "backup_SQL job done" #5.用lftp连接上服务器同步备份 echo "Starting to sftp" lftp <<EOF open ftp://$FTP_USER:$FTP_PASS@$FTP_HOST mirror $FTP_PATH $BF_TIME EOF echo "success" #6打包文件夹,删除源文件 cd $BAK_DIR $TAR zcf $BF_TIME.tar.gz $BF_TIME rm -rf $BF_TIME #删除规定天数前的备份数据 find $BAK_DIR -name "*.gz" -type f -mtime +$days -exec rm {} \; #添加进计划任务 #vi /etc/crontab #30 02 * * * /home/www/bak.sh #/etc/init.d/crontab stop #/etc/init.d/crontab start #screen -S bak #screen -r bak #screen -ls
给自己留下,防止忘了,最好自己测试的时候在screen -S bak 下,执行会好很多,有效防止断线