亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 判斷文件大小,如果過大進(jìn)行清理 [打印本頁]

作者: lang1382080    時(shí)間: 2015-04-01 08:50
標(biāo)題: 判斷文件大小,如果過大進(jìn)行清理
此文件在位置固定,是一個(gè)log文件,由於此文件大於4G,會(huì)導(dǎo)致不可寫,系統(tǒng)應(yīng)用hang住.

請(qǐng)shell達(dá)人幫助,寫一個(gè)腳本監(jiān)控.位置為/data/log/alter.log

注:文件內(nèi)容無需備份,可以直接清空
謝謝
作者: ly5066113    時(shí)間: 2015-04-01 08:55
回復(fù) 1# lang1382080


try:
  1. find /data/log/ -maxdepth 1 -name alter.log -size +4G -exec cp /dev/null {} \;
復(fù)制代碼

作者: o楓葉o飄零    時(shí)間: 2015-04-01 08:56
回復(fù) 1# lang1382080


    達(dá)到什么條件清空?》
作者: helloclei    時(shí)間: 2015-04-01 09:10
回復(fù) 2# ly5066113


find的  -size參數(shù)后面應(yīng)該跟指定的大小吧,+或者-4G  提示參數(shù)無效,我在centos 6.4上試過的。
作者: ly5066113    時(shí)間: 2015-04-01 09:37
回復(fù) 4# helloclei


man find

       Numeric arguments can be specified as

       +n     for greater than n,

       -n     for less than n,

       n      for exactly n.
作者: helloclei    時(shí)間: 2015-04-01 09:42
  1. #!/bin/bash
  2. du -sh /data/log/alert.log > /data/log/size.txt
  3. SIZE=`cat /data/log/size.txt | awk '{print $1}'`
  4. if [ $SIZE > 4000M ]
  5. then
  6. echo > /root/work/alert.log
  7. fi
復(fù)制代碼

作者: jason680    時(shí)間: 2015-04-01 10:17
回復(fù) 1# lang1382080

logrotate

登錄檔的輪替--logrotate
   
logrotate經(jīng)驗(yàn)總結(jié)

作者: lang1382080    時(shí)間: 2015-04-01 13:05
helloclei 發(fā)表于 2015-04-01 09:42



你這個(gè)是我想要的腳本,不過你這個(gè)腳本沒有檢測(cè)到文件的容量,也就是說不論多大的文件 都清空了
作者: lang1382080    時(shí)間: 2015-04-01 13:39
回復(fù) 3# o楓葉o飄零


    文件容量達(dá)到4G,就清空
作者: 我是一隻羊    時(shí)間: 2015-04-01 13:40
二樓已經(jīng)完美實(shí)現(xiàn)了啊?被樓主忽略了...?
作者: o楓葉o飄零    時(shí)間: 2015-04-01 16:30
回復(fù) 9# lang1382080


    2樓的代碼就是你想要的結(jié)果      
作者: zjw0722    時(shí)間: 2015-04-01 18:11
二樓的代碼如何實(shí)現(xiàn)了監(jiān)控?沒看懂,是不是需要每次手動(dòng)執(zhí)行啊
作者: lang1382080    時(shí)間: 2015-04-02 12:27
2樓 不能實(shí)現(xiàn)我要的結(jié)果
作者: lang1382080    時(shí)間: 2015-04-02 12:28
find /data/log/ -maxdepth 1 -name alert.log -size +500M -exec > /data/log/alert.log {} \;  這個(gè)我簡單的修改了下,結(jié)果是不管文件大小 都清理了
作者: ly5066113    時(shí)間: 2015-04-02 12:59
回復(fù) 14# lang1382080


size 可以改,后面的不能改。


find /data/log/ -maxdepth 1 -name alert.log -size +500M -exec cp /dev/null {} \;
作者: lang1382080    時(shí)間: 2015-04-02 13:38
#!/bin/bash

du -sh -k /data/log/alert.log > /data/log/size.txt

SIZE=`cat /data/log/size.txt | awk '{print $1}'`

if [ $SIZE -ge 4000000 ];

then

   > /data/log/alert.log

else
   continue
fi
修改后,可以實(shí)現(xiàn)功能。
作者: fenghedong_007    時(shí)間: 2015-04-02 13:47
回復(fù) 16# lang1382080
  1. #!/bin/bash
  2. fdir="/data/log/"
  3. cd $fdir
  4. fsize=`du -sh alter.log |sed -nr 's/([1-3])[.][^ ].*/\1/p'`
  5. bkdate=`date +"%Y%m%d%H%M"`
  6. if [ "$fsize" -ge 3 ]
  7. then
  8.     tar -czvf alter.log$bkdate.tgz alter.log && cat /dev/null > alter.log
  9. fi
復(fù)制代碼
大于4G不就已經(jīng)hang了嗎,我給你設(shè)置為3G
作者: fenghedong_007    時(shí)間: 2015-04-02 14:03
回復(fù) 17# fenghedong_007

    剛測(cè)試了,sed要改下這樣不會(huì)誤匹配到M,K
    sed -nr '/G/{s/([1-3])[.][^ ].*/\1/p}'
作者: tank064    時(shí)間: 2015-04-03 01:58
建議find后用xargs
作者: tank064    時(shí)間: 2015-04-03 02:02
ly5066113 發(fā)表于 2015-04-02 12:59
回復(fù) 14# lang1382080
樓主你還用這位老兄的這句寫到個(gè)腳本中, 在crontab吧 ,  合理的設(shè)置find  -size大小 和  crontab 應(yīng)該可以減少你系統(tǒng)hang住的情況
作者: luciker1988    時(shí)間: 2015-04-05 20:57
  1. ls -al log.txt|awk '{if ($5 >= 4294967296) print $8}'|xargs rm
復(fù)制代碼

作者: zhxjfl    時(shí)間: 2015-04-09 11:40
本帖最后由 zhxjfl 于 2015-04-09 11:44 編輯
lang1382080 發(fā)表于 2015-04-02 13:38
#!/bin/bash

du -sh -k /data/log/alert.log > /data/log/size.txt


這個(gè)會(huì)清空文件吧? 試試
tail -c 4000000000 /data/log/alert.log




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2