UNIX计数脚本

时间:2014-01-06 12:57:01

标签: shell unix scripting ksh

我需要一个UNIX Kornshell(ksh)脚本来计算目录中的文件数。如果文件超过20个文件,则发送电子邮件结果。我希望脚本每小时运行一次。我无法访问cron。我对UNIX有些新意。 Windows家伙我的职业生涯。这就是我到目前为止所拥有的......

#!/bin/ksh
# count.sh

while :
do
 for dir in /directory1/
 do
  echo "$dir `du $dir |wc -l`" 
 done > ./message
 mailx -s 'Dir Count' me@johndoe.com < ./message
 sleep 3600
done

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如图所示,du命令将在目标目录/directory1内的每个目录中生成一行。

你的问题不明确。它说“如果文件超过20个文件”,我将其解释为“如果文件数超过20个”。您不处理文件(而不是目录,FIFO和其他类型),并且您不测试“超过20”。我将简化一些事情,并假设你的意思是'如果目录中的名字数超过20'。

dir=/directory1/
while :
do
    names=$(ls "$dir" | wc -l)
    if [ "$names" -gt 20 ]
    then echo "$dir $names" | mailx -s 'Dir Count' me@johndoe.com
    fi
    sleep 3600
done