硬盘监控脚本,删除文件有点问题

硬盘监控脚本,删除文件有点问题

ls -1rt /usr/local/test | head -n 1 | xargs  rm -rf (删除目录下最早的文件),  这句单独执行没问题,但放到脚本里就执行不成功,目录文件删不掉。下面是我原代码,大家帮忙看下问题在哪?

test 目录下都是目录文件每天生成一个目录 2008_08_31,2008_09_01,2008_09_02。
引用:
#!/bin/bash
log=/root/tempdisk.log
disklog=/root/disk.log
#touch $log
echo "`date +%Y-%m-%d-%T`  disk space is :" >> $disklog
df -hl >> $disklog
echo "----------------------->" >> $disklog
df -hl | grep -v mapper | grep -v Use | sed 's/ /1/' |  awk {'print $5$6'} > $log
max=$(awk -F"%" '{print $1}' $log | sort -n | tail -1)
if [ "$max" -gt 35 ];
   then
      echo  "Disk hda1 is nearly full!" >> $disklog
      echo  "will be delete  mms dirlog is :" >> $disklog
      #删除test下最早的目录
      ls -1rt /usr/local/test | head -n 1  >> $disklog
      ls -1rt /usr/local/test | head -n 1 | xargs  rm -rf   
      echo "delete over" >> $disklog
      echo "----------------------->" >> $disklog
fi
      
有没有什么错误信息?      
没有任何错误信息      
1) 把 xargs rm -rf 换成 xargs echo rm -rf 看看输出对否?
2) 脚本的运行环境? crontab?      
引用:
原帖由 dearvoid 于 2008-10-8 13:04 发表
1) 把 xargs rm -rf 换成 xargs echo rm -rf 看看输出对否?
2) 脚本的运行环境? crontab?
1. 换成ls -1rt /usr/local/unicom_mmsgw/submit_log | head -n 1 | xargs  echo  rm -rf 后,也不行。
   执行脚本./test ,有这个提示“rm -rf 2008_08_31”。但是目录没删成。

2.是RH AS4系统,crontab运行脚本和手动运行脚本都删除不了文件。      
嗯 搞定了。

把那一句拆成3句OK了:

      cd /usr/local/test
      DIR=`ls -1rt | head -n 1`
       rm -rf $DIR      
引用:
1. 换成ls -1rt /usr/local/unicom_mmsgw/submit_log | head -n 1 | xargs  echo  rm -rf 后,也不行。
   执行脚本./test ,有这个提示“rm -rf 2008_08_31”。但是目录没删成。
因为你删除的当前目录下的 2008_08_31 文件, 而不是 /usr/local/unicom_mmsgw/submit_log/2008_08_31

手工运行成功的原因, 是很巧地这个“当前目录“就是/usr/local/unicom_mmsgw/submit_log/      
引用:
原帖由 li-jiahuan 于 2008-10-9 01:15 发表


因为你删除的当前目录下的 2008_08_31 文件, 而不是 /usr/local/unicom_mmsgw/submit_log/2008_08_31

手工运行成功的原因, 是很巧地这个“当前目录“就是/usr/local/unicom_mmsgw/submit_log/
有道理