crontab 设置用户变量、重定向输出并检测已连接的网络

crontab 设置用户变量、重定向输出并检测已连接的网络

我有三个问题,所有问题都与 crontab 有关。

  1. 我可以访问$HOMEcrontab 中的变量吗?例如,$HOME像这样使用: PATH=$HOME/bin:$HOME/scripts:$PATH?或者* * * * * echo "test" > $HOME/test.txt

  2. 我想让 crontab 正常重定向stdout/dev/null,但将邮件重定向stderr到用户。例如,当计算机处于不是连接到网络,然后 crontab 中的条目* 2 * * * getmail -n -q ...将返回错误,因此 crontab 将向用户发送包含此错误的电子邮件。

  3. 基于上面的例子,getmail当系统运行时将让 crontab 邮件用户不是连接到网络,所以我想要一种方法来检测用户是否连接到网络。

关于此检测方法,应有如下几点:

  1. 快速地

  2. 简单的

  3. 易于与其他 crontab 作业结合使用(例如使用控制:&&、||、| 等)

答案1

  1. 当然
  2. * 2 * * * getmail -n -q ... > /dev/null

如果你想重定向 stdout 和 stderr,那么... 2>&1 > /dev/null

相关内容