RISOLTO systemd timer e script di backup

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
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?
Post unito automaticamente:

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:

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
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:
 
  • Mi piace
Reazioni: e_ale92

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
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:
 
  • Mi piace
Reazioni: rebellion

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
@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:
 
  • Mi piace
Reazioni: e_ale92

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
@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
 

« MoMy »

Utente Èlite
1,526
766
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
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
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

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64

« MoMy »

Utente Èlite
1,526
766
@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
Post unito automaticamente:

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

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
@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:
 

« MoMy »

Utente Èlite
1,526
766
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
 
  • Mi piace
Reazioni: rebellion

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
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

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
@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.png
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!