Fondamenti di shell scripting [RISOLTO]

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Fondamenti di shell scripting [RISOLTO]

Messaggio da Burroughs »

Scusate la domanda un po' insolita: volevo rendere più sicura la procedura di backup che implemento ogni giorno sul mio serverino Slack.
Vi spiego la situazione: giorno dopo giorno viene generato un tarball contenente la copia compressa di diverse directory.
Il tarball include al suo interno, tramite la variabile date, l'indicazione del giorno preciso della settimana in cui è stato effettuato il backup, qualcosa tipo:

Codice: Seleziona tutto

bck-2007-02-23.tar.bz2
Quello che mi interesserebbe realizzare sarebbe uno script che, confrontando la data del tarball con quella di sistema, in caso di discrepanza riavviasse la procedura di backup.
Per essere più semplici: se il 23 febbraio il PC è stato spento e lo si è riacceso il giorno successivo, 24 febbraio, lo script dovrebbe rilevare l'incongruenza ed avviare in automatico il backup.
Si tratta di scrivere due o tre righe di codice...
Qualcuno è disponibile ad aiutarmi???

Burroughs.
Ultima modifica di Burroughs il ven 2 mar 2007, 23:17, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

non ho capito che intendi con discrepanza e che c'entra spegnere e riaccendere una macchina con il backup

Avatar utente
cymon
Linux 2.x
Linux 2.x
Messaggi: 430
Iscritto il: ven 5 gen 2007, 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Messaggio da cymon »

Come parte lo script? E' schedulato in crontab?

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Messaggio da Burroughs »

masalapianta ha scritto:non ho capito che intendi con discrepanza e che c'entra spegnere e riaccendere una macchina con il backup
Pensavo di essere stato sufficientemente chiaro, chiedo venia.
Allora, lo script è schedulato tramite cron (e con questo rispondo anche a cymon) per eseguirsi tutti i giorni ad una determinata ora.
Se (ipotesi tutt'altro che irrealistica da queste parti) dovesse mancare la luce proprio nel momento in cui il cronjob dev'essere eseguito, voglio avere una soluzione che, analizzando il file di backup generato (di cui sopra) confronti la data in cui è stato creato con l'orologio di sistema.
Se il file di backup è stato creato il giorno prima (o n giorni prima) ecco che interviene lo script che sto cercando di realizzare, script che, come ovvio, incorporerei all'interno di rc.local.
That's all.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Ti converrebbe creare un segnale di operazione conclusa, perché se la corrente dovesse saltare durante il backup avresti un archivio incompleto, ma dal semplice confronto della data non ti accorgeresti di nulla...
es. un "tar <comandi tar> && touch backup-ok" o una mail generata in automatico che tutto è andato liscio...

Scusa se ti dò pochi elementi utili, ma fino al prossimo fine settimana avrò poco tempo, inoltre qui ci sono persone molto più brave di me... :)

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

basta usare anacron al posto di cron

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Messaggio da Burroughs »

masalapianta ha scritto:basta usare anacron al posto di cron
Sì, in effetti anacron era proprio quello che cercavo.
Ringrazio comunque anche albatros per la preziosa osservazione.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Rispondi