今天给新手站长们推荐一个简单的网站备份脚本,自动上传到ftp服务器。这个脚本代码来自香菇肥牛博主,这个简单的一键备份,可以把网站文件和数据库备份到FTP服务器上,只需要配置几个简单参数即可。
脚本代码
#!/bin/bash MYSQL_USER=root MYSQL_PASS=MySQLrootPassWord MYSQL_DB_NAME=mywordpressdb FTP_HOST=ftp.1fichier.com FTP_PORT=21 FTP_USER=myftpuser FTP_PASS=myftppassword FTP_PATH=/ WEB_FILES_PATH=/srv/www/example.com LOCAL_BACKUP_PATH=~/backup WEBSITE_NAME=example.com DB_BACKUP_FILE_NAME=$WEBSITE_NAME.$(date +"%Y%m%d").db WEBSITE_FILES_BACKUP_FILE_NAME=$WEBSITE_NAME.$(date +"%Y%m%d").webfiles mysqldump -u $MYSQL_USER -p$MYSQL_PASS $MYSQL_DB_NAME > $DB_BACKUP_FILE_NAME.sql tar zcf $LOCAL_BACKUP_PATH/$DB_BACKUP_FILE_NAME.tar.gz *.sql rm -f $DB_BACKUP_FILE_NAME.sql tar zcf $LOCAL_BACKUP_PATH/$WEBSITE_FILES_BACKUP_FILE_NAME.tar.gz $WEB_FILES_PATH ftp -v -n $FTP_HOST $FTP_PORT<< END user $FTP_USER $FTP_PASS type binary passive cd $FTP_PATH put $LOCAL_BACKUP_PATH/$DB_BACKUP_FILE_NAME.tar.gz put $LOCAL_BACKUP_PATH/$WEBSITE_FILES_BACKUP_FILE_NAME.tar.gz bye END
预置参数
MYSQL_USER=root #mysql数据库用户名 MYSQL_PASS=MySQLrootPassWord #mysql数据库密码 MYSQL_DB_NAME=mywordpressdb #mysql数据库名 FTP_HOST=ftp.1fichier.com #远程ftp服务器地址 FTP_PORT=21 #远程ftp端口 FTP_USER=myftpuser #远程ftp用户名 FTP_PASS=myftppassword ¥远程ftp密码 FTP_PATH=/ #远程ftp备份文件存储路径 WEB_FILES_PATH=/srv/www/example.com #需要备份的网站目录 LOCAL_BACKUP_PATH=~/backup #本地备份文件存储地址 WEBSITE_NAME=example.com #备份的网站名
定时任务
把脚本代码另存为auto_backup.sh
,并执行chmod +x auto_backup.sh
赋予执行权限。
执行crontab -e
,在最后追加下面这段内容
#每天3:30分执行自动备份 30 3 * * * * /root/auto_backup.sh