顯示具有 Script 標籤的文章。 顯示所有文章
顯示具有 Script 標籤的文章。 顯示所有文章

2013年12月19日 星期四

刪除目錄內所有tar檔案內的特定檔案

一年排程設備備份檔案, 年初不小心在目錄內誤放了幾個不相關 img, 結果年底要燒成光碟
結果總容量共22G, 沒辨法燒錄CD, 所以只好處理*.gz檔案, 刪除img後 剩下2xxM . O_O

原本想用人工一個一個檔案處理, 結果處理到第三個就放棄, 因為有3xx多個檔案


簡單迴圈顯示目錄下所有檔案
for f in `ls`; do
  echo "File -> $f"
done
簡單迴圈顯示目錄下所有.gz檔案
for f in `ls *.gz`; do
  echo "File -> $f"
done

#看一下gz檔案內的檔案列表
tar --list --file=device.config.20131219.tar.gz


#用gunzip 將.gz 解回.tar, 刪除掉檔案, 在將檔案用 gzip 壓縮
  (zip 的檔案好像無法直接刪除檔)

for f in `ls *.gz`; do
  echo "gzip File -> $f"
  gunzip $f
  fn=`echo $f|awk -F.gz '{print $1}'`
  echo "tar File -> $fn"
  tar --delete --file=$fn tftpboot/RFS7000-5.4.4.0-007R.img
  gzip $fn
done





2013年11月8日 星期五

將整個記錄檔依指定開頭合併成為一行



將整個記錄檔依指定開頭合併成為一行
awk ' { if( $1 ~ /^Access|^Rquest|^Status/) 
            { print "\n"; printf "%s",$0 } 
            else 
            { printf "%s",$0 }
      }' analyzer.log

$1 該行的第一個字
$0 整行

依 Access 或 Request 或 Status 為開頭, 其它行接續至該末端
所以合併之後開頭只會有Access 或 Request 或 Status

print  直接印出
printf 格式化字串印出, 但會將末端換行符號刪除




常見去空白行方法
tr -s '\n' < abc.txt
grep -v "^$" abc.txt
sed '/^$/d' abc.txt
sed '/./!d' abc.txt
awk '/./' abc.txt


去除同行連續相同字
echo "abc1 abc1 abcd2 abcd3 abcd4 abcd1" |sed -e 's/\b\([a-z0-9]\+\)[ ,\n]\1/\1/g'
abc1 abcd2 abcd3 abcd4 abcd1

2013年3月8日 星期五

linux 刪除超大量檔案目錄

rm on a directory with millions of files
小心使用, 注意權限 





最常用的方法, 刪除整個目錄, 用 ls 無法顯示
rm -rf (dir)

檔案數超過一定數量
find <dir> -type f -exec rm {} \;

刪除超量(用find刪不掉), 目錄大小超過數百M, 甚至數十G, 一般是主機被駭才有機會 >_<
while [ true ]; do ls -Uf | head -n 10000 | xargs rm -f 2>/dev/null; done )

export i=0;
time ( while [ true ]; do
            ls -Uf | head -n 3 | grep -qF '.png' || break;
            ls -Uf | head -n 10000 | xargs rm -f 2>/dev/null;
            export i=$(($i+10000)); echo "$i...";
       done )




Extreme XOS run pyton scripts

XOS run python scripts v15.7 or high 將交換器上的 IP & MAC 往syslog 丟, 簡單將IP資料保留下 ## 編緝Scripts # vi ip2syslog.py #!/usr/bin/python # ...