Email
如何使用 Puppet 在 cron 中設置 MAILTO?
期望是會有一個
mailto
屬性,但是這個來源否認cron { 'resource title': name => # (namevar) The symbolic name of the cron job. This name is ensure => # The basic property that the resource should be... command => # The command to execute in the cron job. The... environment => # Any environment settings associated with this... hour => # The hour at which to run the cron job. Optional; minute => # The minute at which to run the cron job... month => # The month of the year. Optional; if specified... monthday => # The day of the month on which to run the... provider => # The specific backend to use for this `cron... special => # A special value such as 'reboot' or 'annually'... target => # The name of the crontab file in which the cron... user => # The user who owns the cron job. This user must... weekday => # The weekday on which to run the command... # ...plus any applicable metaparameters. }
文件沒有說明是否支持 mailto,例如:
環境
(屬性:此屬性表示目標系統上的具體狀態。)
與此 cron 作業關聯的任何環境設置。它們將儲存在 crontab 中的標題和作業之間。不能保證其他較早的設置也不會影響給定的 cron 作業。
此外,Puppet 無法自動確定現有的非託管環境設置是否與給定的 cron 作業相關聯。如果您已經有帶有環境設置的 cron 作業,那麼 Puppet 會將這些設置保存在文件中的相同位置,但不會將它們與特定作業相關聯。
設置應完全按照它們應出現在 crontab 中的方式指定,例如 PATH=/bin:/usr/bin:/usr/sbin。
問題中引用的內置 Puppet 類型
cron
有一個名為的屬性environment
,可用於為託管 cronjob 設置環境變數。在這種情況下,它看起來像這樣,將
MAILTO
變數設置為,foobar
以便將 cronjob 的輸出郵寄給使用者foobar
:cron { 'some-cron-job': ... environment => 'MAILTO=foobar', }
您可以使用 puppet forge 中的模組來管理 cron 並將環境變數添加到 cron 作業中。這個我用過,可能還有其他的。
你可以這樣做
cron::job { 'mysqlbackup': minute => '40', hour => '2', date => '*', month => '*', weekday => '*', user => 'root', command => 'mysqldump -u root mydb', environment => [ 'MAILTO=root', 'PATH="/usr/bin:/bin"' ]; }
其中設置 MAILTO 和 PATH 環境變數。