/etc/cron.hourly
나는 데비안 관련 시스템에서 , ...의 시스템 수준 crontab 스크립트가 /etc/cron.daily
시스템 타이머를 위해 단계적으로 폐지되고 있음을 확인했습니다. 예를 들어:
$ cat logrotate
#!/bin/sh
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
exit 0
fi
...
내 목표 중 하나는 cron과 anacron을 단계적으로 폐지하는 것이라고 생각합니다. (참고 1 참조)
제가 보기에 cron의 주요 사용 사례는 사용자 정의 crontab( crontab -e
)입니다. 이를 통해 사용자는 시스템 관리자 권한 없이 자신의 작업을 자신의 사용자로 실행하도록 예약할 수 있습니다.
관리자가 아닌 사용자가 반복 작업을 예약할 수 있도록 하는 현재 또는 계획된 기능이 systemd에 있습니까?
참고 1:
이전 진술을 약간 누그러뜨리기 위해 cron을 폄하하고 시스템 타이머를 칭찬하는 것 외에는 특별히 좋은 토론을 찾지 못했습니다. 나는 이 방향이 리눅스 배포판의 신들로부터 물려받았다는 증거를 찾지 못했습니다. 그러나 나는 그것이 여행의 방향이라는 것을 알아차렸습니다. 따라서 이 진술은 이것이 이동 방향이고 시간이 지남에 따라 대부분/모든 패키지가 결국 동일한 방식으로 진행되고 하나의 시스템(cron)이 중복될 것으로 예상한다는 아이디어에 기초한 것입니다.
답변1
사용자는 설정할 수 있습니다시스템 타이머, 기본적으로 서비스와 타이머를 생성 ~/.config/systemd/user
하고 타이머를 활성화합니다.
사용자 정의 크론 작업에서 시스템 타이머로 전환하면 두 가지 주요 기능이 손실됩니다(좋은지 나쁜지는 상황에 따라 다름).
- 시스템 서비스는 결과를 이메일로 보내지 않습니다.
- systemd 사용자 타이머는 사용자가 지속되도록 구성되지 않는 한(관리자가 수행해야 하는 작업) 사용자 세션이 활성화된 동안에만 실행됩니다.
systemd 타이머를 사용하면 cron 작업에 비해 많은 가능성이 추가됩니다. 예를 들어 시간 지정은 다음과 같습니다.더 표현력이 좋아졌습니다cron과 달리 타이머는 "특정 VPN이 시작될 때만"과 같은 다른 요구 사항을 충족하도록 구성할 수 있습니다. (물론 이러한 모든 세부 사항은 cron 작업에 기록될 수도 있습니다...) 또한 systemd 타이머는 cron 작업보다 관리하기가 더 쉽다고 생각합니다. 타이머 상태와 타이머가 다음에 실행될 시기를 확인하는 것은 쉽습니다.
Debian에서 보고 있는 패턴은 중복 작업이 두 번 실행되는 것을 방지하는 데 사용됩니다. 한 번은 systemd로, 한 번은 cron 또는 anacron으로(어떤 이유로든) 실행됩니다. 일반적인 내용이 있다는 뜻은 아닙니다표적cron 또는 anacron을 비활성화합니다.