我需要一个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
非常感谢任何帮助。
答案 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