• Linux Unix下自动备份网站的脚本

    [Ubuntu]
    post by Holmesian / 2009-11-28 14:25 Saturday
    原因

        Linux&Unix下使用Apache或者Nginx都会把所有的虚拟主机网站放在一个类似于/www的根文件夹下,而且一般是一个网站一个文件夹。 一般来说如果用FTP备份网站,由于网站零碎文件非常多,所以下载起来非常慢,而且有时候通过FTP直接下载网站备份还有有一系列的问题(比如说从Linux&Unix的服务器上下载带权限的文件到Windows或者其他环境之后权限全部失效,恢复的时候又要重新设置权限……)

     


    比较明智的做法是将各个网站打包成一个文件,这样既加快了下载备份的速度(传输1024个1kb的文件和传输一个1MB的文件谁快想想就知道了……),又可以保存网站原来的结构和权限等信息

     PS:这种方法同样适用于Mysql


    具体操作
    如果要批量将/www下各个网站(各个文件夹)备份的话这样做 到/www下执行
    引用
    ls -lh | grep / | awk '{print "#"split($9,myfname,"/")}{print "tar zcf /bbs/webbak/bak_"myfname[1]".gz "$9" &"}'
    输出相应的命令,检查一下这些命令是否有明显错误 再将将这些输出>到一个.sh中再运行即可 效果是把所有的网站(各个文件夹)单独备份成一个gz包放到指定的位置了 例如在服务器上的/www运行 ls -lh | grep / | awk '{print "#"split($9,myfname,"/")}{print "tar zcvf /bbs/webbak/20091128bak_"myfname[1]".gz "$9" &"}' >backup.sh (其中/bbs/webbak/为备份生成文件所谓位置) 运行backup.sh即可 backup里的内容是
    引用
    tar zcf /bbs/webbak/20091128bak_2_for_bak.gz 2_for_bak/ & 
    #2 tar zcf /bbs/webbak/20091128bak_888_for_bak.gz 888_for_bak/ & 
    #1 tar zcf /bbs/webbak/20091128bak_apache22@.gz apache22@ & 
    #2 tar zcf /bbs/webbak/20091128bak_bak.gz bak/ & 
    #2 tar zcf /bbs/webbak/20091128bak_bbs.gz bbs/ & 
    #2 tar zcf /bbs/webbak/20091128bak_blog.gz blog/ & 
    #2 tar zcf /bbs/webbak/20091128bak_bloglai.gz bloglai/ & 
    #2 tar zcf /bbs/webbak/20091128bak_chenbo.gz chenbo/ & 
    #2 tar zcf /bbs/webbak/20091128bak_ems.gz ems/ & 
    #1 tar zcf /bbs/webbak/20091128bak_httpd-vhosts.conf@.gz httpd-vhosts.conf@ & 
    #1 tar zcf /bbs/webbak/20091128bak_huangming@.gz huangming@ & 
    #2 tar zcf /bbs/webbak/20091128bak_myxgc200712.gz myxgc200712/ & 
    #2 tar zcf /bbs/webbak/20091128bak_mzy.gz mzy/ & 
    #2 tar zcf /bbs/webbak/20091128bak_nc2.gz nc2/ & 
    #2 tar zcf /bbs/webbak/20091128bak_renshi.gz renshi/ & 
    #2 tar zcf /bbs/webbak/20091128bak_student.gz student/ & 
    #2 tar zcf /bbs/webbak/20091128bak_ucenter.gz ucenter/ & 
    #2 tar zcf /bbs/webbak/20091128bak_uchome.gz uchome/ & 
    #2 tar zcf /bbs/webbak/20091128bak_wangjian_blog.gz wangjian_blog/ & 
    #2 tar zcf /bbs/webbak/20091128bak_www.gz www/ & 
    #2 tar zcf /bbs/webbak/20091128bak_xiaoyouhui.gz xiaoyouhui/ & 
    #2 tar zcf /bbs/webbak/20091128bak_ycblog.gz ycblog/ & 
    #2 tar zcf /bbs/webbak/20091128bak_yihao.gz yihao/ & 
    #1 tar zcf /bbs/webbak/20091128bak_zhaolei@.gz zhaolei@ & 
    #2 tar zcf /bbs/webbak/20091128bak_zhouyu.gz zhouyu/ & 
    建议不要用tar的v参数

    发表评论: