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
© 2019 - 2023 · YuYoung's Blog