RHEL8/RHEL9环境下如何在crontab的MAILFROM中自动包含主机名(无需硬编码或包装脚本)?
RHEL8/RHEL9环境下如何在crontab的MAILFROM中自动包含主机名(无需硬编码或包装脚本)?
别担心,这问题我之前管理RHEL服务器时也碰到过,给你两个简单直接的办法,完全符合你的要求——不用硬编码每个主机的名字,也不用额外写包装脚本:
用反引号做命令替换直接定义MAILFROM
你之前试的$(hostname)在crontab环境里兼容性不太好(因为cron默认用的是sh而不是bash,对$()的支持有限),换成POSIX标准的反引号就没问题了。直接在crontab的开头添加这一行:MAILFROM=cron-`hostname`@ourdomain.com每次cron执行任务时,会自动调用
hostname命令获取当前服务器的主机名,自动拼接到MAILFROM的地址里。先定义HOSTNAME变量再引用
如果觉得上面的写法有点紧凑,也可以先单独把主机名存到变量里,再用变量拼MAILFROM,逻辑更清晰:HOSTNAME=`hostname` MAILFROM=cron-$HOSTNAME@ourdomain.com这样后续如果你的crontab里其他地方还要用到主机名,直接用
$HOSTNAME就行。
这两种方法都不需要修改任何系统配置文件,也不用写额外脚本,直接在每个服务器的crontab里加几行就能搞定,完美适配RHEL8和RHEL9的环境。
备注:内容来源于stack exchange,提问作者Rop
相关产品推荐
相关产品推荐

