echo 不会将一行应用于 crontab

echo 不会将一行应用于 crontab

想要将其应用到 crontab:

crontab -l > nopass
echo 'ALERT - Found a user without password on:' `hostname` `date` | cat /etc/shadow | awk -F: '($2==""){print $1}' | mail -s "Alert: Found a user without password on `hostname` `who | awk '{print $6}'`" $ADMIN_MAIL >> nopass
crontab nopass
rm nopass

但是这条长线不适用。是因为字符串的结构错误,还是因为 crontab 对字符有某种限制?也许有更方便的方法来做我想做的事?

答案1

您的“长线”至少存在一个问题:

echo 'ALERT - Found a user without password on:' `hostname` `date` | cat /etc/shadow

该命令的输出echo将会丢失。

将代码分成多个单独的语句/行确实会更有益处。

相关内容