Shell 脚本 newb 在这里。首先感谢大家为帮助我解决这个问题所付出的任何时间和精力。
我需要创建一个 shell 脚本和一个 cron 作业来删除 /tmp 和存储在自定义目录中的会话。
几天来我一直在学习基础知识,并且正在尝试我的第一个 shell 脚本和 cron 作业。
我对运行多个 shell 命令的最佳方式感到困惑,即使其他命令失败,也允许命令通过。我还想要为那些失败的命令发送日志报告和电子邮件。
我知道我可以使用与号(&&)或分号。我还知道与号允许退出错误检查,而分号则不允许。
这是我的脚本
TmpPurge.sh
#!/bin/bash
find /home/username/sessions -iname 'sess_*' -mmin +480 -exec rm -rf {} \; &&
find /home/username/sessions -iname 'sess_*' -mmin +240 -exec rm -rf {} \; &&
/usr/sbin/tmpwatch -umc 5 /home/username/sessions &&
/usr/sbin/tmpwatch -umc 6 /var/tmp &&
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator
if [ $? = 0 ];
then
echo "$(date) Tmp purge completed successfully with error code: $?. " >> /home/username/logs/TmpPurge.log
else
echo "$(date) Tmp purge exited with error code: $?. " >> /home/username/logs/TmpPurge.log
fi
echo -e "\r" >> /home/username/logs/TmpPurge.log
定时任务:
20 3 * * * /bin/sh /home/username/scriptsdir/TmpPurge.sh > /home/username/logs/TmpPurge.log 2>&1
问题1:脚本是否正确?问题2:在多个命令之上运行的最佳方式是什么?是上面还是
find /home/username/sessions -iname 'sess_*' -mmin +480 -exec rm -rf {} \;
find /home/username/sessions -iname 'sess_*' -mmin +240 -exec rm -rf {} \;
/usr/sbin/tmpwatch -umc 5 /home/username/sessions;
/usr/sbin/tmpwatch -umc 6 /var/tmp;
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator
或者
/usr/sbin/tmpwatch -umc 5 /home/username/sessions\%
/usr/sbin/tmpwatch -umc 6 /var/tmp\%
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator\%