我写了一个脚本,一切都根据我的需要运行良好:
a=$(df -h /mnt/smb | tail -n +3 | tr -s ' ' | tr '%' ' ' | cut -d ' ' -f 5)
echo $a
if [[ $a -ge 30 ]]; then
cat /etc/diskspace/text.txt | sendmail test.gmail.com
fi
Run Code Online (Sandbox Code Playgroud)
我想通过 Cron 每分钟运行一次这个脚本,看我的 crontab:
* * * * * /etc/diskspacae/vpndrive.sh
Run Code Online (Sandbox Code Playgroud)
如您所见,如果驱动器空间超过 80%,运行此脚本后,我想使用 sendmail 在我的电子邮件中收到通知。
但是当我从 Cron 运行这个脚本时我还没有得到它,并且我在/var/spool/mail/root.
ERROR Message: /etc/diskspace/vpndrive.sh line 34 : sendmail: command not found.
Run Code Online (Sandbox Code Playgroud) 我需要检查文件夹是否为空,并根据输出我需要运行一些其他命令。我正在使用 Ubuntu 18.04.5 LTS。
我的 bash 脚本:
if [ "$(ls -A /mnt/mamdrive/"As Metadata"/)" ] || ["$(ls -A /mnt/mamdrive/"As Video"/)" ]; then
echo "copy file"
else
echo "dont copy"
fi
Run Code Online (Sandbox Code Playgroud)
这种情况有时有效,但有时不起作用,而且很难重现。有没有其他方法可以检查目录是否为空并相应地执行一些操作?