systemd를 사용하여 정기적으로 이메일 보내기

systemd를 사용하여 정기적으로 이메일 보내기

나는 사용하고 싶다시스템 타이머기념일이나 세금 신고서 등 특정 사항을 상기시키기 위해 정기적으로 이메일을 보내세요.

나는 이메일을 정기적으로 보낸다.바보;추가 소프트웨어(예:이메일을 보내.

나는 Arch Linux 4.18.5를 사용하고 있습니다. systemctl --versionsystemd 239는 말합니다.

답변1

~/.config/systemd/user/send-mail.service먼저 다음 내용으로 systemd 서비스 파일을 만듭니다.

[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이름이 접미사 sum 을 제외하고 동일하기 때문에 여전히 작동합니다 .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의 시간 형식 정보.

관련 정보