马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。
之前群里有同砚反应说因为大批的日记招致磁盘空间满了,光远同砚就提出弄个crontab,因而我就接下这趟镖研讨了一下find和crontab命令。
那末怎样准时清算年夜于指定巨细的日记呢?思绪是起首必要找到log文件,find命令就派上用处了。起首在把持台输出以下命令:
[root@gtest210032/]#find./etc-size10c
了局为:
<br>可见find命令的搜刮路径是很深的,切合我们在hudson-home下的jobs目次中的多个工程中查找响应巨细的log文件。
find命令的格局为:
findpathname-options[-print-exec-ok…]
pathname:find命令所要查找的目次路径。如用.来暗示以后目次,/暗示根目次。
find有很多命令选项,因为我们只必要查找名为log,巨细年夜于4G的文件,因而这里只先容一下-name和-size。
-name:依照文件名查找文件。好比–name“log”,暗示文件名为log的文件。
-size:文件巨细。好比–size10c,暗示文件巨细为10字节的文件,c暗示这个要查找的文件巨细是以bytes为单元。
-exec:对婚配的文件实行该参数给出的命令。好比–execls-l{};
因而假如我们必要删除年夜于1KB的文件,find命令以下:
[root@gtest210032shell]#find/home/soft/shell/-name"log"-size+1024c-execrm{};
接上去就是设置准时命令crontab,参数有:
crontab-l:列出用户今朝的crontab
crontab-e:编纂用户今朝的crontab
crontab-r:删除用户今朝的crontab
crontab准时工夫格局以下:
t1t2t3t4t5program
t1:暗示分钟,取值(0-59)。
t2:暗示小时,取值(0-23)。
t3:暗示日期,取值(1-31)。
t4:暗示月份,取值(1-12)。
t5:暗示礼拜,取值(0-6),0是礼拜天。
另有几个特别的标记:“*”,“/”,“-”。“*”暗示一切取值局限内的数字,“/”暗示每的意义,好比在分钟上*/2,暗示每两分钟,“-”暗示从某个数字到某个数字。
因为crontab是个全局命令,因而能够在任何目次下操纵crontab。
将后面写的find命令写成shell剧本,文件名为findLog.sh,以下:
#!/bin/sh
find/home/soft/shell/-name"log"-size+1024c-execrm{};
然后对findLog.sh文件操纵:
chmodu+rwxfindLog.sh,使该shell剧本可实行。在该剧本地点目次,./findLog.sh就能够实行该shell剧本了。
我们的请求是每两分钟实行之前的find命令,因为已将find命令写成shell剧本了,因而能够准时每两分钟实行后面的shell剧本。在以后目次下crontab-e编纂crontab,键进i使其成为可输出,输出以下内容:
*/2****/bin/sh/home/soft/shell/findLog.sh,保留加入。
/bin/sh代表shell程序,能够经由过程whichsh命令来检察呆板的shell程序在哪一个目次。
经由过程以上事情就能够准时每两分钟实行find命令了。
以上是经由过程准时命令来完成准时删除响应巨细的log文件,人人另有没有别的办法呢?
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln |