0

我正在尝试使用 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
4

1 回答 1

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(感谢@User123!)at,否则它的语法不正确at

于 2018-12-14T05:51:08.593 回答