免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2856 | 回复: 13
打印 上一主题 下一主题

[文件目录] 请教一个关于根据目录循环打包的问题 [复制链接]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-01 13:29 |只看该作者 |倒序浏览
本帖最后由 supcat 于 2012-08-01 13:44 编辑

      我想写个脚本根据目录来打包文件,以前是用for host in $( cat /tmp/host.txt) 来实现的,但是每次有变动时,比如增加网站时又需要手动添加,及其不方便而且由于管理的比较多,经常忘记添加,想到先用find ./*/ -mtime -1 >>host.txt,但是这样也有问题,host.txt里变成./xxx.com/ 有时候目录时间更改了,而里面内容却没,又会追加记录。希望可以指点一二,有没有更好的办法来实现呢。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2012-08-01 13:33 |只看该作者
应该可以,但是看你的描述没法给你意见。

如果你要动态获得记录,就给出你要的输入和输出,给出具体例子。

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
3 [报告]
发表于 2012-08-01 13:53 |只看该作者
回复 2# rdcwayx


    有个地方写错了,是host。我想实现的是动态获取目录的情况,然后依照目录来打包,每个目录生成一个包。比如我/home/wwwroot/目录下存放的是网站的文件夹,由于一台服务器需要添加很多网站,每个网站一个文件夹,我想获取/home/wwwroot/这个下面的目录,然后为每个目录打包。 以前需要手动添加问价夹名到host.txt中。我想弄个可以自动获取目录的。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
4 [报告]
发表于 2012-08-01 14:16 |只看该作者
你的find 支持maxdepth 参数吗?
  1. cd /home/wwwroot
  2. find . -maxdepth 1 -type d |awk -F \/ 'NF>1{print $2}' |while read folder
  3. do
  4.   tar cvf - "$folder" |gzip > /new_folder/$folder.tar.gz
  5. done
复制代码

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
5 [报告]
发表于 2012-08-01 15:07 |只看该作者
回复 4# rdcwayx


    嗯 ,支持的,谢谢 赶紧去试试。非常感谢

论坛徽章:
0
6 [报告]
发表于 2012-08-01 17:14 |只看该作者
感觉米有必要这么麻烦 ls -l过滤也可以的
cd  /home/wwwroot
ls -l|grep ^d|awk '{print $9}'|while read a
do
tar czvf /newfile/$a.tar.gz $a
done

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
7 [报告]
发表于 2012-08-02 07:52 |只看该作者
cao_doctor 发表于 2012-08-01 17:14
感觉米有必要这么麻烦 ls -l过滤也可以的
cd  /home/wwwroot
ls -l|grep ^d|awk '{print $9}'|while read ...


目录名带空格的话,就要出错了。

论坛徽章:
0
8 [报告]
发表于 2012-08-02 11:56 |只看该作者
回复 7# rdcwayx
考虑不周,后果很严重!谢谢指导


   

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
9 [报告]
发表于 2012-08-06 14:46 |只看该作者
回复 4# rdcwayx


    不知道用这个方法可不可以排除掉指定的目录或文件呢。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
10 [报告]
发表于 2012-08-07 09:20 |只看该作者
因为你一开始的要求都是针对目录名的, 现成的代码可以改成

cd /home/wwwroot
find . -maxdepth 1 -type d |awk -F \/ 'NF>1{print $2}' |egrep -v "KEY1|KEY2|KEY3" | while read folder
do
  tar cvf - "$folder" |gzip > /new_folder/$folder.tar.gz
done

如果要剔除文件名的话,要重新写代码了。 这个你需要给出更详细的要求。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP