为了删除日志,需要不断切换用户去指定目录删除,所以想能否脚本自动实现。直接su发现不行,所以采用telnet到本机的方式。 #!/usr/bin/ksh INFILE="file.in" OUTFILE="file.out" rm $INFILE rm $OUTFILE mknod $INFILE p touch $OUTFILE # file description 7 for out and 8 for in exec 7<>$OUTFILE ####一个普通文件用于存放命令输出 exec 8<>$INFILE ####一个管道文件作为标准输入 #循环取出目录,目录即为用户名 for var in `ls /data01/data` do sleep 2 echo "change user to $var" #telnet telnet localhost <&8 >&7 2>&1 & sleep 1 #输入用户名 echo "$var" >>$INFILE sleep 2 #输入密码 echo "$var"123456 >>$INFILE sleep 1 echo "who am i" >> $INFILE sleep 1 #执行删除命令 echo " find /data01/data/$var/worklog/log/ -name "*.log" -mtime +1 -exec rm -f {} /; " >> $INFILE sleep 10 echo " find /data01/data/$var/worklog/*/log/ -name "*.log" -mtime +1 -exec rm -f {} /; " >> $INFILE sleep 10 #退出 echo "exit" >> $INFILE sleep 2 done stty echo 参考: http://blog.sina.com.cn/s/blog_716358dc0100lj6d.html