RISOLTO systemd timer e script di backup

Pubblicità
Se per eseguire i comandi dello script son sufficienti i privilegi utente, personalmente opterei per systemd-user così mi toglierei qualche impiccio.
mmm sisi lo script lo esegue l'utente :)
me si documenta e ti aggiorna... anche se credo sia già settato come utente

edit.
per systemd-user intendi questo: https://wiki.archlinux.org/index.php/Systemd/User_(Italiano) oppure intendi l'opzione User nel tag [Service] del backup.service?
--- i due messaggi sono stati uniti ---
edit2.
risolto avviando il timer con l'opzione OnCalendar e inserendo uno sleep nello script. con molta poca eleganza ho combinato il realtime timer con quello monotonic xD
 
Ultima modifica:
risolto avviando il timer con l'opzione OnCalendar e inserendo uno sleep nello script. con molta poca eleganza ho combinato il realtime timer con quello monotonic xD
bèh allora diamo una parvenza di monotonic timer allo script, perchè non inserisci questa riga all'inizio:
Codice:
while true; do onbootsec=$(cat /proc/uptime |awk '{print $1}') ; if [ ${onbootsec%.*} -gt 60 ] ; then break ; fi ; done
avendo impostato 60 secondi il tempo di OnBootSec.:patpat:
 
bèh allora diamo una parvenza di monotonic timer allo script, perchè non inserisci questa riga all'inizio:
Codice:
while true; do onbootsec=$(cat /proc/uptime |awk '{print $1}') ; if [ ${onbootsec%.*} -gt 60 ] ; then break ; fi ; done
avendo impostato 60 secondi il tempo di OnBootSec.:patpat:

sei troppo pro :+1::giudice::luxhello::dancinghae:
 
@e_ale92 altrimenti se vuoi eliminare un comando la riga diventa:
Codice:
while [ $(echo $(cat /proc/uptime |awk '{print $1}') | xargs printf "%.*f\n" 0) -lt 61 ] ; do true ; done
:figo:
 
@e_ale92 altrimenti se vuoi eliminare un comando la riga diventa:
Codice:
while [ $(echo $(cat /proc/uptime |awk '{print $1}') | xargs printf "%.*f\n" 0) -lt 61 ] ; do true ; done
:figo:
anche tu sei un pro... oh ma solo io sono nabbo? ahahahah

credo userò la riga di MoMy perché più leggibile (per me che sono nabbo), però salvo anche questa... non si sa mai
 
Proprio quello.
Con una cosa tipo... risolvi (duplicity a parte perché non lo conosco anche se ho visto che offre l' opzione --log-file /nome/file/log.log):
Crei la cartella in ~/.config/systemd/user nella quale ci piazzi il .timer e .service
Nel service si aggiunge la variabile display:
Codice:
[Unit]
Description=Backup Settimanale

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash /nome/dello/script
Mentre il timer cambia poco o nulla:
Codice:
[Unit]
Description=Backup Giornaliero

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
Lo lanci con $ systemctl --user enable nome-del-timer.timer.
Volendo ci sarebbe anche # systemd-run --on-active=secondi <comando> di interessante. :P
 
Proprio quello.
Con una cosa tipo... risolvi (duplicity a parte perché non lo conosco anche se ho visto che offre l' opzione --log-file /nome/file/log.log):
Crei la cartella in ~/.config/systemd/user nella quale ci piazzi il .timer e .service
Nel service si aggiunge la variabile display:
Codice:
[Unit]
Description=Backup Settimanale

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash /nome/dello/script
Mentre il timer cambia poco o nulla:
Codice:
[Unit]
Description=Backup Giornaliero

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
Lo lanci con $ systemctl --user enable nome-del-timer.timer.
Volendo ci sarebbe anche # systemd-run --on-active=secondi di interessante. :P
soluzione più elegante, anche se non so se adottata. quella col ritardo manuale non mi dispiace xD
 
@rebellion Mai usato anche se è prevista l' opzione --on-calendar (realtime) e anche --on-active=, --on-boot=, --on-startup=, --on-unit-active= e --on-unit-inactive= (le monotone :P). Quindi un esempio potrebbe essere:
$ sudo systemd-run --on-calendar="*-*-* 20:40:00" /bin/bash /home/<utente>/.scripts/nome-script.sh
Per il sudo... si potrebbe creare una regola polkit. :P
--- i due messaggi sono stati uniti ---
A parte che, l' esempio che riporta la ArchBibbia :asd: systemd-run --on-active="12h 30m" --unit someunit.service il service parte da sistema attivo dopo 12 ore e mezza. Comunque essendo una forma transitoria è utile nel momento che trova (''mi serve una cosa veloce...tac-tac e via''). A differenza di un .timer + .service che abilitato una vola, quello rimande.
 
Ultima modifica:
@rebellion Mai usato anche se è prevista l' opzione --on-calendar (realtime) e anche --on-active=, --on-boot=, --on-startup=, --on-unit-active= e --on-unit-inactive= (le monotone :P). Quindi un esempio potrebbe essere:
$ sudo systemd-run --on-calendar="*-*-* 20:40:00" /bin/bash /home/<utente>/.scripts/nome-script.sh
sì son previste ma non credo si possano usare assieme (realtime e monotonic)!:patpat:
 
Questo già lo sappiamo. :giudice::asd:
Quello che noi non abbiamo fatto è considerare altre opzioni tipo After=, BindsTo=, Wants= eccecc nel .service in maniera tale da usare un realtime e far partire il servizio dopo a, legato a, richiedendo eccecc.
Altrimenti si usa bash (visto che la tua riga sopra di per sé è già metà dello script di avvio... ci manca solo un file -lock :P) e si lascia perdere i .timer e .service. :P
 
Questo già lo sappiamo. :giudice::asd:
Quello che noi non abbiamo fatto è considerare altre opzioni tipo After=, BindsTo=, Wants= eccecc nel .service in maniera tale da usare un realtime e far partire il servizio dopo a, legato a, richiedendo eccecc.
Altrimenti si usa bash (visto che la tua riga sopra di per sé è già metà dello script di avvio... ci manca solo un file -lock :P) e si lascia perdere i .timer e .service. :P

nono timer e service mi servono altrimenti vado in crisi mistica. devo fare le cose tutte allo stesso modo... :dancinghae:
XD
 
@e_ale92 Tranqui, @lui sta già progettando un' interfaccia grafica con tanto di icona nella task, popups, selezione delle cartelle e/o dischi, log e controlli vari :P :asd:
orcoU2, lo schema base della gui l'avevo già preparata, sono irrecuperabile..:cav:
comunque @e_ale92 se vuoi .timer e .service allora si potrebbe pensare a una gui solo per la configurazione delle variabili dello script da mettere tramite appindicator nel pannello gnome...:suicidio:

Edit: guarda questa che carina (l'immagine è una gif di una supernova):Schermata da 2019-03-03 15-13-59.webp
 
Pubblicità
Pubblicità
Indietro
Top