Skip to content

backup.general.howto

404 edited this page Sep 14, 2010 · 1 revision

先备份一些重要的静态文件,除了webroot还有apache和ssh的配置

因为apache配置有很多站点的配置,ssh的默认配置文件我也有所调整 tar cvf /backup/223.webroot.date +%Y%m%d-%H%M%S.tar /var/www/* tar cvf /backup/223.etc.sshd.date +%Y%m%d-%H%M%S.tar /etc/ssh/* tar cvf /backup/232.etc.httpd.date +%Y%m%d-%H%M%S.tar /etc/apache2/*

备份数据库用下面方法,直接mysqldump出数据库

不进行压缩:

/usr/bin/mysqldump -uroot -ppassword --opt zuowen-2u4u > /backup/zuowen.2u4u.db.date +%Y%m%d

使用压缩:

mysqldump -uroot -ppasswd 2u4u |gzip >/backup/2u4udb.date +%Y%m%d-%H%M%S.sql.gz

mysqldump -uroot -ppasswd gps |gzip >/backup/gps.date +%Y%m%d-%H%M%S.sql.gz

备份后清理老旧备份文件

用find寻找和删除文件定要 find + 绝对路径,否则放到cron中删除了执行cron用户的home目录文件啦!!!

find /backup/ -type f -mtime +4 -name "*.tar" -exec rm {} ;

find 命令详细解释

查找文件命令find。查找符合以下条件

  1. 是文件 -type -f
  2. 修改是件modified time是超过4天 mtime +4
  3. 文件名称后缀是.tar -name "*.tar"
  4. 对找到的文件进行操作 -exec rm {};

例子:删除所有更改时间在4天前的gz压缩后的数据库备份文件。

  find /backup/ -type f -mtime +4 -name "*.gz"  -exec rm {} \;

把备份推到另外一台服务器

非常可惜 scp 没有只复制更新的这个 flag。 cp 有 -u ,就是之复制 (u)pdated 的文件 scp中对应的是什么?

scp -rp /backup/* root@132:/backup/

使用rsync

to do

#backing up the whole site to /media/backup_web 30 1 * * * rsync -avrul --ignore-errors --include-from=/root/crontab/web /media/backup_web 30 2 * * * rsync -av --ignore-errors /var/www/static.files/ /media/backup_web/static.files

其中 /root/crontab/web 中写要同步的目录,一行一个。比如:

 /var/www/html/
 /home/404/backup/
Clone this wiki locally