Saya ingin menjalankan skrip cadangan 10 menit setelah mem-boot mesin saya tetapi hanya sekali sehari. Apakah mungkin untuk membangun skenario seperti itu dengan systemd?
Saya tidak sepenuhnya memahami persyaratan Anda, mohon klarifikasi. Saya mengerti bahwa jika Anda me-reboot kali serveral mesin Anda dalam sehari, skrip seharusnya hanya berjalan setelah reboot pertama, benarkah itu? Jika mesin Anda beroperasi lebih dari 1 hari, haruskah skrip dijalankan dalam beberapa hari berturut-turut?
Krzysztof Adamski
Persis. Saya akan membuat cadangan setiap hari tidak peduli seberapa sering saya reboot PC saya.
Fu86
5
Jika Anda tidak terpaku pada systemd, inilah gunanya anacron.
Gilles 'SO- stop being evil'
Saya mungkin salah tetapi tidak ada cara mudah untuk mengatur anacron untuk menjalankan skrip hanya 10 menit setelah booting selesai.
Krzysztof Adamski
Betul. Itu sebabnya saya saat ini menggunakan anacron dan orang tua yang baik, dengan pekerjaan sehari-hari sepertiecho "obnam backup" | at "now + 10 minutes"
Ini menjalankan .servicefile yang sesuai 15 menit setelah boot dan kemudian setiap hari saat sistem menyala. Jika Anda menyalakan ulang beberapa kali di hari yang sama, Anda dapat meminta skrip cadangan memeriksa waktu arsip dan lewati proses tersebut jika sudah berumur kurang dari satu hari.
Juga, jika cadangan Anda akan berat pada IO, mungkin akan bermanfaat untuk membaca tentang arahan penjadwalan IOS * di halaman systemd.exec (5) .
Saya tidak berpikir itu mungkin untuk melakukan ini sepenuhnya di systemd karena tidak melacak keadaan apa pun antara reboot. Anda dapat dengan mudah menjadwalkan sesuatu untuk dijalankan 10 menit setelah boot menggunakan systemd.timerdan OnBootSec=atau OnStartupSec=.
Script itu sendiri harus memeriksa apakah sudah berjalan hari ini atau belum. Ini dapat dengan mudah diimplementasikan bahkan dalam bash, misalnya:
Tampaknya masalah ini akan dibahas dalam rilis mendatang. Paling tidak menurut email ini di mailing list systemd-devel. Sampai itu Anda harus pergi dengan cara hack yang diusulkan Krzysztof.
echo "obnam backup" | at "now + 10 minutes"
Jawaban:
Lihat
/lib/systemd/system/systemd-tmpfiles-clean.timer
:Ini menjalankan
.service
file yang sesuai 15 menit setelah boot dan kemudian setiap hari saat sistem menyala. Jika Anda menyalakan ulang beberapa kali di hari yang sama, Anda dapat meminta skrip cadangan memeriksa waktu arsip dan lewati proses tersebut jika sudah berumur kurang dari satu hari.Juga, jika cadangan Anda akan berat pada IO, mungkin akan bermanfaat untuk membaca tentang arahan penjadwalan IOS * di halaman systemd.exec (5) .
sumber
Saya tidak berpikir itu mungkin untuk melakukan ini sepenuhnya di systemd karena tidak melacak keadaan apa pun antara reboot. Anda dapat dengan mudah menjadwalkan sesuatu untuk dijalankan 10 menit setelah boot menggunakan
systemd.timer
danOnBootSec=
atauOnStartupSec=
.Script itu sendiri harus memeriksa apakah sudah berjalan hari ini atau belum. Ini dapat dengan mudah diimplementasikan bahkan dalam bash, misalnya:
sumber
Jika Anda tidak menutup telepon pada 10 menit setelah boot, Anda dapat:
OnCalendar=daily
membuatnya berjalan setiap tengah malam,Persisten=true
saat boot jika ada setidaknya satu menjalankan tidak terjawab.sumber
Tampaknya masalah ini akan dibahas dalam rilis mendatang. Paling tidak menurut email ini di mailing list systemd-devel. Sampai itu Anda harus pergi dengan cara hack yang diusulkan Krzysztof.
sumber