Makinemi açtıktan 10 dakika sonra ancak günde sadece bir kez yedek komut dosyası çalıştırmak istiyorum. Systemd ile böyle senaryolar oluşturmak mümkün müdür?
echo "obnam backup" | at "now + 10 minutes"
Makinemi açtıktan 10 dakika sonra ancak günde sadece bir kez yedek komut dosyası çalıştırmak istiyorum. Systemd ile böyle senaryolar oluşturmak mümkün müdür?
echo "obnam backup" | at "now + 10 minutes"
Yanıtlar:
Bkz /lib/systemd/system/systemd-tmpfiles-clean.timer
:
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
Bu, ilgili .service
dosyayı önyüklemeden 15 dakika sonra ve sistem açıkken her gün çalıştırır. Aynı gün içinde birden çok kez yeniden başlatırsanız, yedek komut dosyasının arşivin zamanını kontrol etmesini ve bir günden daha eski olması durumunda bu çalıştırmayı atlamasını sağlayabilirsiniz.
Ayrıca, yedeklemeleriniz ES üzerinde yoğunlaşacaksa , systemd.exec (5) kılavuzundaki IOScheduling * yönergelerini okumak faydalı olabilir .
Yeniden başlatmalar arasında herhangi bir durumu takip etmediği için bunu tamamen systemd'de yapmanın mümkün olduğunu düşünmüyorum. Sen tefriş çizme kullandıktan sonra 10 dakika çalıştırmak için bir şey zamanlayabilirsiniz systemd.timer
ve onun OnBootSec=
ya OnStartupSec=
.
Komut dosyasının kendisi, bugün zaten çalıştırılıp çalıştırılmadığını kontrol etmelidir. Bu, bash'da bile kolayca uygulanabilir, örneğin:
#/bin/sh -x
FILE=/etc/lastrun
TODAY=`date +"%Y%m%d"`
LASTRUN=`cat $FILE`
[[ -z "$LASTRUN" ]] || [[ "$TODAY" -gt "$LASTRUN" ]] || exit
echo $TODAY > $FILE
RUNYOURSCRIPTHERE