為了刪除日誌,需要不斷切換使用者去指定目錄刪除,所以想能否指令碼自動實現。直接su發現不行,所以採用telnet到原生方式。
<br />#!/usr/bin/ksh<br />INFILE="file.in"<br />OUTFILE="file.out"<br />rm $INFILE<br />rm $OUTFILE<br />mknod $INFILE p<br />touch $OUTFILE<br /># file description 7 for out and 8 for in<br />exec 7<>$OUTFILE ####一個普通檔案用於存放命令輸出<br />exec 8<>$INFILE ####一個管道檔案作為標準輸入</p><p>#迴圈取出目錄,目錄即為使用者名稱<br />for var in `ls /data01/data`<br />do<br /> sleep 2<br /> echo "change user to $var"</p><p> #telnet<br /> telnet localhost <&8 >&7 2>&1 & </p><p> sleep 1</p><p> #輸入使用者名稱<br /> echo "$var" >>$INFILE<br /> sleep 2</p><p> #輸入密碼<br /> echo "$var"123456 >>$INFILE<br /> sleep 1<br /> echo "who am i" >> $INFILE<br />sleep 1</p><p>#執行刪除命令<br /> echo " find /data01/data/$var/worklog/log/ -name "*.log" -mtime +1 -exec rm -f {} /; " >> $INFILE<br />sleep 10<br /> echo " find /data01/data/$var/worklog/*/log/ -name "*.log" -mtime +1 -exec rm -f {} /; " >> $INFILE<br />sleep 10</p><p> #退出<br /> echo "exit" >> $INFILE<br />sleep 2<br />done</p><p>stty echo<br />
參考:
http://blog.sina.com.cn/s/blog_716358dc0100lj6d.html