AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 467891
Accepted
Matthias Braun
Matthias Braun
Asked: 2018-09-10 09:55:43 +0800 CST2018-09-10 09:55:43 +0800 CST 2018-09-10 09:55:43 +0800 CST

使用 systemd 定期发送电子邮件

  • 772

我想使用systemd 计时器定期发送电子邮件以提醒我某些事情,例如周年纪念日或报税。

我用Mutt发送我的常规电子邮件;如果我可以重复使用它来发送自动电子邮件,而不必安装像Sendmail这样的其他软件,那就太好了。

systemctl --versionsystemd 239 说,我使用的是 Arch Linux 4.18.5 。

systemd mutt
  • 1 1 个回答
  • 763 Views

1 个回答

  • Voted
  1. Best Answer
    Matthias Braun
    2018-09-10T09:55:43+08:002018-09-10T09:55:43+08:00

    首先,创建一个 systemd 服务文件,~/.config/systemd/user/send-mail.service内容如下:

    [Unit]
    Description=Sends mail that reminds me of an anniversary
    
    [Service]
    ; The l flag for bash creates a login shell so Mutt can access our environment variables which contain configuration
    ExecStart=/bin/bash -lc "echo \"$(whoami) created this message on $(date) to remind you about...\" | mutt -s \"Don't forget...\" [email protected]"
    

    您可以通过执行来测试发送邮件是否有效

    systemctl --user daemon-reload && systemctl --user start send-mail.service
    

    这应该发送电子邮件至[email protected]。

    然后,~/.config/systemd/user/send-mail.timer使用以下内容创建一个计时器:

    [Unit]
    Description=Timer for writing mail to myself to remind me of anniversaries
    
    [Timer]
    ; Trigger the service yearly on September 5th
    OnCalendar=*-09-05
    ; Send a mail immediately when the date has passed while the machine was shut down
    Persistent=true
    AccuracySec=1us
    ; Set the timer to every ten seconds (for testing)
    ; OnCalendar=*:*:0/10
    
    [Install]
    WantedBy=timers.target
    

    请注意,计时器的内容不引用服务。它仍然有效,因为服务和计时器除了后缀.service和 .timer. 如果您想以不同的方式命名计时器和服务,Unit=请在计时器[Timer]部分使用。

    使您的计时器在启动时启动

    systemctl --user daemon-reload && systemctl --user enable send-mail.timer
    

    您现在应该可以看到计时器了systemctl --user list-timers --all。

    要启动计时器,请执行

    systemctl --user start send-mail.timer
    

    要检查 systemd 如何解释您的日期,您可以使用systemd-analyze calendar *:0/2或systemd-analyze calendar quarterly。另外,请查看有关 systemd 时间格式的手册。

    • 1

相关问题

  • journalctl 中的区分级别

  • 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _

  • systemd:如何在服务启动时运行脚本,而不编辑服务定义

  • 使用 systemd 看门狗支持重新启动应用程序

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve