スクリプトの練習3
ディレクトリ内のログファイル(logs-で始まる)で、一定数以上で古いほうから削除したい。
#!/bin/bash cnt=0 list=$(ls -lt /tmp) while read ff do if expr "${ff}" : ".* logs-.*" > /dev/null then fname=$(echo ${ff} | awk 'BEGIN{FS=" "}{print $9}') echo ${fname} cnt=`expr $cnt + 1` echo ${cnt} if [ ${cnt} -gt 6 ] then echo rm ${fname} rm ${fname} fi fi done <<< "${list}"
あと、ls -lt -full-timeとすると、更新時刻が以下になる。
# ls -lt --full-time /tmp/logs-* -rw-r--r-- 1 root root 242858 2009-11-13 16:42:25.329816998 +0900 /tmp/logs-20091113-164213.tgz -rw-r--r-- 1 root root 205866 2009-11-13 13:48:09.629816998 +0900 /tmp/logs-20091113-134758.tgz
同じような表記で現在時刻を採るには以下のように指定する
# date +"%Y-%m-%d %X" 2009-11-13 18:04:53