Linux自用脚本
-目录-
定时任务与发送邮件
功能:输入某个进程名称,当进程结束后向指定邮箱发送邮件。
使用:./watch-and-mail.sh processname
需要自定义:
1. `mailx`的配置文件,4行内容
1. 最后一行的接受邮件地址,you@example.com
#!/bin/bash
#需要安装mailx然后配置文件
#vim /etc/mail.rc
## 添加以下
#set from=x@126.com
#set smtp=smtp.126.com
#set smtp-auth-user=x@126.com
#授权码
#set smtp-auth-password=x
# 检查参数是否为空
if [ -z "$1" ]; then
echo "Usage: $0 <process_name>"
exit 1
fi
# 获取进程名
process_name="$1"
# 检查进程是否存在
if ! pgrep "$process_name" >/dev/null; then
echo "Process '$process_name' not found."
exit 1
else
echo "Process '$process_name' found."
echo "pid: $(pgrep -f $process_name)"
echo "waiting for process to finish..."
fi
# 等待进程结束
while pgrep "$process_name" >/dev/null; do
sleep 1
done
# 进程已结束,发送邮件通知
echo "The process '$process_name' has finished." | mail -s "Process finished" you@example.com