awk脚本备份drupal

根据settings.php 里面的相关设置,去备份mysql.保留14天的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
 
awk  '
BEGIN{FS= "[\" \047]+"
     www_prefix= "/mnt/"
     bak_prefix= "/mnt/backup/"
     path[ "test1" ]= "test1/sites/default/files"
     path[ "test2" ]= "test2/sites/default/files"
     bak=0     #备份文件方式 0 rsync 1 tar
     del=14    #删除多少以前的
}
!/^ *\/\ //  && /\/\*/{a=1}
!/^ *\/\ //  && /\*\/ *$/{a=2}
a==2 && /^ *\$databases/{
     b[1]=1
     next
     }
b[1] && a==2 && /^ *[^ #]/ && !/^ *\/\// && /database|username|password|host/{
     b[$2]=$4
     if (length(b)==5){
         site=gensub(www_prefix "([^/]*)/.*" , "\\1" ,1,FILENAME)
         mysql = sprintf( "mysqldump -u\"%s\" -p\"%s\" -h\"%s\" --database %s > %s%s/db/%s.sql" ,b[ "username" ],b[ "password" ],b[ "host" ],b[ "database" ],bak_prefix,site,strftime( "%F" ,systime()))
         system(mysql)
         del_bak_mysql = sprintf( "rm -f %s%s/db/%s.sql" ,bak_prefix,site,strftime( "%F" ,systime()-86400*del))
         system(del_bak_mysql)
         if (bak){
             file_bak = sprintf( "cd %s%s && tar -cf %s%s/file/%s.tar.gz ." ,www_prefix,site,bak_prefix,site,strftime( "%F" ,systime()))
         } else {
             file_bak = sprintf( "rsync -az %s%s/ %s%s/file" ,www_prefix,path[site],bak_prefix,site)
         }
         system(file_bak)
         delete b
     }
}'  /mnt/test1/sites/default/settings .php  /mnt/test2/sites/default/settings .php


下次还有新的drupal直接把settings.php文件添加到后面就和path(网站root路径)就可以了,



本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1720010,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值