Linux下备份详解
对于站长来说,数据的安全尤为重要,时常备份就是站长必不可少的一项工作了。
对于Linux下的脚本备份,可以参考下面的脚本。这里只给出一个思路,请各位在这个基础上进行扩展。
#! /bin/bash
#定义vps的名字,也就是备份文件的名字
vpsname="84vps"#这里填写数据库的用户名和密码
dn="root"
dpw="password"#这里是数据库的路径,如果不知道,查找一下
mysql_path="/var/lib/mysql"#打印数据库的名称,可跟据情况更改print $9这个数字,有的是8
data_f=`ls -l $mysql_path | awk '{ print $9 ; }'`
#分目录导出mysql数据库
if [ ! -d /home/backup ] ; then
mkdir /home/backup
fi
cd /home/backupfor databases in ${data_f} ; do
if [ -d $mysql_path/$databases ];then
/usr/bin/mysqldump --databases $databases -u$dn -p$dpw | gzip > data_$databases.sql.gz
fi
done
rm -rf data_mysql.sql.gz#直接打包数据库
tar -zcPf data_$vpsname.tar.gz /var/lib/mysql/* --exclude='/var/lib/mysql/mysql*' --exclude='/var/lib/mysql/debian-5.1.flag*'#打包web目录
tar -zcPf web_$vpsname.tar.gz /var/www/* --exclude='/var/www/default*'#打包备份目录
cd /home
tar -zcf $vpsname.tar.gz backup#ftp上传,这里填写ftp的ip和用户名密码
ftp -vn ftp.abc.com << autoftp
user ftpuser ftppassword
type binary
put $vpsname.tar.gz
close
quit
autoftp
将上面的脚本复制粘贴到记事本中,更改名称为:backup.sh,然后删掉中文注释的部分。
切记,上面的脚本,只修改目录路径即可,比如你的数据库路径为:/usr/local/mysq,则改成这个,网站目录大多数是:/home/www,也请改掉。
这样备份有一个好处就是,每个数据库是独立的一个文件。
每天定时备份,把backup.sh放在home下面
chmod 755 /home/backup.sh
crontab -e
25 06 * * * /home/backup.sh
每天早上6:25分进行备份。
我的每星期二早上备份
25 06 * * 2 /home/backup.sh