Mail与at命令

时间:2018-12-14 03:13:53

标签: bash mailx at-job

我正在尝试使用at命令发送邮件,但是邮件会立即送达,而是应该按照at命令提供的时间发送邮件。下面是脚本:

#!/bin/bash

TODAY=`date +%Y%m%d`
echo 'Please enter the User-Name:'
read name
echo 'No. of days access is required - number only'
read NumberofDays

echo "Root access revoked for $name" | mailx -s "root access revoked for $name on $TODAY" xyz@example.com| at now + $NumberofDays

1 个答案:

答案 0 :(得分:1)

请注意这两个语句之间的区别:

  • 将命令的输出通过管道传递到at
  • 通过管道将命令文本执行到at

您显示的脚本执行第一个,而您想要执行第二个:

cat << EOF | at "now + $NumberofDays days"
echo "Root access revoked for $name" | \
mailx -s "root access revoked for $name on $TODAY" xyz@example.com
EOF

我还在$NumberofDays命令的参数中的at之后添加了“天”(感谢@User123!), 否则,at的语法不正确。