2018/01/03

January 3 ,2018

Weather : light rain !
一、需求:
寫一個shell腳原本看看你使用最多的命令是哪些,列出你最經常使用的命令top10。shell

[root@Dasoncheng ~]# sort /root/.bash_history |uniq -c |sort -n |tail

二、需求:
假如咱們須要每小時都去執行你寫的腳本。在腳本中實現這樣的功能,當時間是0點和12點時,須要將目錄/data/log/下的文件所有清空,注意只能清空文件內容而不能刪除文件。而其餘時間只須要統計一下每一個文件的大小,一個文件一行,輸出到一個按日期和時間爲名字的日誌裏。 須要考慮/data/log/目錄下的二級、三級、… 等子目錄裏面的文件。(答案比我寫得好)bash

[aming@Dasoncheng ~]$ cat a.sh 
#!/bin/bash
d=`date +%H`
t=`date +%Y%m%d%H%M`
for i in `find /data/log -maxdepth 1 -type f ` ;
do
  if [ $d == 10 ] || [ $d == 12 ] ;
  then
      true > $i
  else
      size=`du -sh $i |awk '{print $1}'`
      echo $i $size >> /tmp/$t.log
  fi
done

參考答案:

一、思路:咱們要用到一個文件就是.bash_history,而後再去sort、uniq,剩下的就不用我多說了吧。很簡單一個shell。日誌

sort /root/.bash_history |uniq -c |sort -nr |head

二、code

#!/bin/bash

logdir="/data/log"
t=`date +%H`
d=`date +%F-%H`
[ -d /tmp/log_size ] || mkdir /tmp/log_size
for log in `find $logdir -type f`
do
    if [ $t == "0" ] || [ $t == "12" ]
    then
    true > $log
    else
    du -sh $log >>/tmp/log_size/$d
    fi
done
本站公眾號
   歡迎關注本站公眾號,獲取更多信息