整理文件,把自己之前修改的自动备份网站的脚本发上来吧。
自动获取所有数据库并备份。
自动获取多个网站根目录下的所有网站并备份
自动备份Nginx配置文件
自动删除N天前的备份文件
以上...
#!/bin/bash
# 备份网站和数据库
# 作者: ImDong <www@qs5.org>
# 网站: http://www.qs5.org
# 作者: 本修改版基于 LNMP.org 的 backup.sh 修改而成
# 功能说明:
# 1.自动获取所有 Mysql 数据库自动备份
# 2.指定需要备份的网站根目录,自动备份下面所有的网站(分开) 而且支持多个根目录
#
# 使用说明: 每天夜里3点自动执行
# crontab -e
# 0 3 * * * /home/software/site_shell/sites_mysql_backup.sh
#### 注意!!! 使用前请一定要先设置下面的信息!!!!!
######~设置备份文件保存的目录~######
Backup_Home="/home/backup/" # 备份文件保存的目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" # mysqldump 文件路径
######~设置需要备份哪些网站目录~######
Backup_SitesHome=(
'/home/htdocs/'
'/home/wwwroot/'
)
## Nginx配置文件目录
conf_path='/usr/local/nginx/conf/vhost/'
######~设置MySQL数据账号密码~######
MYSQL_DataPath='/home/mysql/data/'
MYSQL_UserName='root'
MYSQL_PassWord='1234'
# 备份数据保存几天
save_days=7
#### 需要设置的内容到此结束 ~!!!!
######~设置要备份的MySql数据库 自动~######
IS_PATH=$(pwd)
cd ${MYSQL_DataPath} && Backup_Database=$(ls -d */)
cd ${IS_PATH}
# 备份网站文件夹
Backup_Dir()
{
# 获取文件夹名
Backup_Path=$1
# 去掉默认的 /
Backup_Path=${Backup_Path%/}
# 获取网站目录所在文件夹(父文件夹)
Pre_Dir="$(dirname ${Backup_Path})/"
# 获取网站目录名
Dir_Name=${Backup_Path##*/}
# 保存文件名
Backup_Sites_Name=${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz
tar zcf ${Backup_Sites_Name} -C ${Pre_Dir} ${Dir_Name}
echo "Backup Sites: [${1}] ${Pre_Dir} ${Dir_Name} => ${Backup_Sites_Name}"
}
# 备份数据库
Backup_Sql()
{
Db_Name=$1
Backup_Db_Name=${Backup_Home}db-${Db_Name}-$(date +"%Y%m%d").sql.gz
${MySQL_Dump} -u${MYSQL_UserName} -p${MYSQL_PassWord} ${Db_Name} | gzip > ${Backup_Db_Name}
echo "Backup Db: ${Db_Name} => ${Backup_Db_Name}"
}
# 备份Nginx 配置文件
Backup_Conf()
{
# 保存文件名
Backup_Conf_Name=${Backup_Home}Conf-$(date +"%Y%m%d").tar.gz
path=`dirname ${conf_path}`
name=`basename ${conf_path}`
tar zcf ${Backup_Conf_Name} -C ${path} ${name}
echo "Backup Nginx Conf: ${Backup_Conf_Name}"
}
if [ ! -f ${MySQL_Dump} ]; then
echo "mysqldump command not found.please check your setting."
exit 1
fi
if [ ! -d ${Backup_Home} ]; then
mkdir -p ${Backup_Home}
fi
echo "Backup Nginx Conf..."
Backup_Conf
echo "Backup website files..."
Backup_Dir=();
for SiteHome in ${Backup_SitesHome[@]};do
Backup_Dir=(
${Backup_Dir[@]}
$(ls -d ${SiteHome}*/)
)
done
for dd in ${Backup_Dir[@]};do
Backup_Dir ${dd}
done
echo "Backup Databases..."
for db in ${Backup_Database[@]};do
if [ ${db%/} != 'performance_schema' -a ${db%/} != 'mysql' -a ${db%/} != 'information_schema' ]; then
Backup_Sql ${db%/}
fi
done
echo "Delete old backup files..."
find ${Backup_Home} -mtime +${save_days} -exec rm -rf {} \;
我倒是用的面板有自动备份
嗯,我们都是自己装的环境,一般都没有自动备份的...
我用的还是lnmp.org的脚本,备份到FTP服务器
其实这个也是从那个改的...