Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


//Removed by EUCookieLaw Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Spostare script di "backup" da windows a linux
#1
attualmente sto utilizzando un script di backup basato su alcuni batch che fanno diverse verifiche poi lanciano 7zip e xcopy per creare le copie di backup di un gestionale e di una cartella documenti risiedenti su un "server" windows dato che adesso queste copie di backup sono fatte su un client e io vorrei spostarle su di un pc apposito solo per quello non avendo licenze windows che "avanzano" pensavo di usare ubuntu solo che non sa da che parte iniziare per convertire i comandi windows in comandi per linux la creazione dei "batch" e come gestire la schedulazione

il primo file che si chiama salva.bat imposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / in - per non avere problemi con le directory dopo verifica la presenza della directory principale "backup" ed in mancanza la crea e poi verifica la presenza anche della cartella "log" ed in mancanza crea anche quella dopo di che lancia due file bat creando anche un txt come log di tutte le operazioni fatte e le mostra anche tramite il programma WTEE che sono i veri e propri script di backup uno è una copia in chiaro di tutti i file del gestionale e di tutti i file presenti nella directory documenti che sono stati modificati da una determinata data in questo caso la data odierna l'altro fa la stessa cosa solo che invece che in chiaro la fa compressa finita l'esecuzione dei due script esce
Codice:
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
md Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist d:\Backup\Log (
ECHO La cartella d:\Backup\Log esiste già
goto process
) else (
ECHO La cartella d:\Backup\Log non esiste e sarà ora creata
)
md Log
goto fine
:process
cd Log
cd..
:fine
cd\
c:
cd\
copia.bat | wtee.exe "D:\Backup\Log\copia %data% %time%.txt"
backup.bat | wtee.exe "D:\Backup\Log\backup %data% %time%.txt"
cd\
exit

il secondo file che si chiama copia.bat per sicurezza reimposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / in - per non avere problemi con le directory dopo verifica la presenza della directory principale di backup ed in mancanza la crea poi verifica la presenza di una directory chiamata "Non Compressi" ed in mancanza la crea poi verifica la presenza di una directory chiamata "Fnet" ed in mancanza la crea in questa cartella verranno copiati i file del gestionale poi verifica la presenza di una directory chiamata "Documenti" ed in mancanza la crea in questa cartella verrano copiati i documenti dopo lancia il comando DOFF per avere la data odierna da dare in pasto al comando xcopy dopo di che ci sono le due righe di comando di xcopy una per i documenti e una per il gestionale con le relative opzioni che io ho ritenuto necessarie

Codice:
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
md Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist "d:\Backup\Non Compressi" (
ECHO La cartella d:\Backup\Non Compressi esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi non esiste e sarà ora creata
)
md "Non Compressi"
cd "Non Compressi"
goto fine
:process
cd "Non Compressi"
:fine
if exist "d:\Backup\Non Compressi\Fnet" (
ECHO La cartella d:\Backup\Non Compressi\Fnet esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi\Fnet non esiste e sarà ora creata
)
md Fnet
cd Fnet
cd..
goto fine
:process
cd Fnet
cd ..
:fine
if exist "d:\Backup\Non Compressi\Documenti" (
ECHO La cartella d:\Backup\Non Compressi\Documenti esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi\Documenti non esiste e sarà ora creata
)
md Documenti
cd Documenti
cd..
goto fine
:process
cd Documenti
:fine
cd\
c:
doff mm-dd-yyyy > tempdata.txt
@echo on
for /F %%x in (tempdata.txt) do xcopy "f:\Documenti\*.*" "d:\Backup\Non Compressi\Documenti\Documenti %data% %time%" /D:%%x /c /v /f /i /s /e /k /r /h /y /z /Exclude:lista.Txt
xcopy "f:\fnet\*.*" "d:\Backup\Non Compressi\Fnet\Fnet %data% %time%" /c /v /f /i /s /e /k /r /h /y /z /Exclude:lista.Txt
@echo off
cd\
c:
cd\

il secondo file che si chiama backup.bat per sicurezza reimposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / in - per non avere problemi con le directory dopo verifica la presenza della directory principale di backup ed in mancanza la crea poi verifica la presenza di una directory chiamata "Compressi" ed in mancanza la crea poi verifica la presenza di una directory chiamata "Fnet" ed in mancanza la crea in questa cartella verranno creati i file compressi del gestionale poi verifica la presenza di una directory chiamata "Documenti" ed in mancanza la crea poi verifica la presenza anche della cartella "Completo" ed in mancanza crea qui ci sarà un file compresso iniziale di tutti i documenti e un secondo file compresso sempre aggiornato con tutti i file modificati poi verifica la presenza anche della cartella "Incrementale" ed in mancanza crea in questa cartelle verranno creati i file compressi con i soli file modificati dall'ultimo backup singolarmente non assieme a tutti i file poi verifica che il file documenti.7z esista che è il file che viene usato come base per gli aggiornamenti ed eventualmente lo crea in mancanza di esso crea anche un file "documenti completo data ora.7z" poi crea un file new.7z con i file modificati dall'ultimo backup in seguito lo sposta nella cartella "Incrementale" rinominandolo "documenti data ora.7z in seguito aggiorna il file documenti.7z che usa come base per la creazione dell'incrementale dopodiche crea un file chiamato "fnet data ora.7z" che conterrà tutti i file del gestionale finito questo torna al salva.bat per chiudere tutto

Codice:
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
md Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist d:\Backup\Compressi (
ECHO La cartella d:\Backup\Compressi esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi non esiste e sarà ora creata
)
md Compressi
cd Compressi
goto fine
:process
cd Compressi
:fine
if exist d:\Backup\Compressi\Fnet (
ECHO La cartella d:\Backup\Compressi\Fnet esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Fnet non esiste e sarà ora creata
)
md Fnet
cd Fnet
cd..
goto fine
:process
cd Fnet
cd ..
:fine
if exist d:\Backup\Compressi\Documenti (
ECHO La cartella d:\Backup\Compressi\Documenti esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti non esiste e sarà ora creata
)
md Documenti
cd Documenti
goto fine
:process
cd Documenti
:fine
if exist d:\Backup\Compressi\Documenti\Completo (
ECHO La cartella d:\Backup\Compressi\Documenti\Completo esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti\Completo non esiste e sarà ora creata
)
md Completo
goto fine
:process
cd Completo
cd ..
:fine
if exist d:\Backup\Documenti\Compressi\Incrementale (
ECHO La cartella d:\Backup\Compressi\Documenti\Incrementale esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti\Incrementale non esiste e sarà ora creata
)
md Incrementale
goto fine
:process
cd Incrementale
cd\
:fine
:: verifica se il file documenti.7z esiste:
:: - se esiste, lo aggiorna nel nuovo file
:: - se non esiste, lo crea
d:
cd\
cd Backup
cd Compressi
cd Documenti
cd Completo
if exist "documenti.7z" (
ECHO Il file Documenti.7z esiste ora lo aggiorno
goto ritorno
) else  (
ECHO Il file documenti.7z non esiste e sarà ora creato
)
@echo on
"C:\Programmi\7-Zip\7z.exe" a -r -x@"c:\lista.txt" -y  -mx=9 "documenti.7z" "f:\documenti\*.*"
copy documenti.7z "documenti completo %data% %time%.7z"
@echo off
goto ritorno
:ritorno
:: Crea il file incrementale documenti con i file modificati dall'ultimo backup
@echo on
"C:\Programmi\7-Zip\7z.exe" u  "documenti.7z" -u- -up0q0r2x0y2z0w2!new.7z -mx=9 "f:\documenti\*.*" -r -x@"c:\lista.txt" -y
move new.7z "d:\Backup\Compressi\Documenti\Incrementale\documenti %data% %time%.7z"
@echo off
:: Aggiorna i file documenti.7z
:: (se è appena stato creato, non dovrebbe aggiornare nulla)
@echo on
"C:\Programmi\7-Zip\7z.exe" u -r -x@"c:\lista.txt" -y  "documenti.7z" -mx=9 "f:\documenti\*.*"
@echo off
cd\
d:
cd\
cd Backup
cd Compressi
cd Fnet
::creo il backup di Fnet
@echo on
"C:\Programmi\7-Zip\7z.exe" a -r -x@"c:\lista.txt" -y -mx=9  "fnet %data% %time%.7z" "f:\fnet\*.*"
@echo off
endlocal
cd\

quello che vorrei capire è come posso procedere per "portare" gli script su linux quali sono i corrispettivi comandi in linux e le relative opzioni di riferimento rispetto a quelle di windows e se potrei incorrere in qualche problema???

vorrei rimanere su uno script fatto da me non usando programmi tipo cobian per windows in quanto così è più scalabile e modulare in quanto magari in un futuro potrei aver bisogno di funzionalità maggiori o modifiche che magari un programma non mi permetterebbe per fare un piccolo esempio il file lista.txt contiene una lista di file da escludere dalla copia e dalla compressione se volessi aggiungere o togliere qualche file mi basterebbe aprire il file e fare le modifiche di conseguenza tutte le modifiche vengono fatte per tutte le copie e le compressioni eventualmente con programmi tipo cobian questa modifica dovrei farla su tutti i task singolarmente invece con il file lista.txt potrei anche modificarlo da remoto sul mio pc e poi ricopiarlo magari tramite ftp o altro accesso remoto tipo teamviwer ecc....

vorrei anche consigli su eventuali componenti non necessari che posso rimuovere dall'installazione standard oppure componenti necessari che dovrei installare ( so che molti diranno che potrei evitare di installare l'interfaccia grafica che per queste cose serve a poco ma quella vorrei lasciarla per comodità )

naturalmente qualcunque consiglio e/o suggerimento è sempre ben accetto e preso in considerazione

Spero di aver scritto tutto e sopratutto di non aver sbagliato sezione ( in questo caso chiedo ai moderatori di spostarla nella sezione più appropiata )
Cita messaggio
#2
Per ora sposto la discussione nella sezione della shell ma mi riservo di leggere tutto il codice con calma perché di dos ne so nulla (poco anche di bash ma sempre qualcosina di più) e poi tentare un commento ragionato.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#3
(13-06-2013, 18:39 )zafran Ha scritto: Per ora sposto la discussione nella sezione della shell ma mi riservo di leggere tutto il codice con calma perché di dos ne so nulla (poco anche di bash ma sempre qualcosina di più) e poi tentare un commento ragionato.

èèèèèèèè come dire???????? non avevo notato questa sezione!!!!! Smile Smile Smile Smile
Cita messaggio
#4
Poco male: l'efficientissimo Majorana forum team vigila.

Comunque, scorrendo i tuoi commenti negli script non ci trovo nulla che non si possa riscrivere alla volèe.
Mi resta come al solito oscura, invece, la parte riferita alla codifica sulla quale mi sa che ti conviene approfondire e, se possibile, intervenire a monte.
L'uso di cp1252 è destinato (è stato fatto apposta) a generare casini e forme insidiose di dipendenza, quindi se fosse possibile avere già gli originali in utf-8 sarebbe un bel passo avanti.
Se invece non è possibile, occorre informare lo script che gli si stanno dando anche dei caratteri non standard o, eventualmente, fare un doppio passaggio con qualcosa tipo dos2unix o fromdos che credo possano servire alla bisogna.

Mi sembra un'ottima idea di restare su script fatti da te che sicuramente anche in futuro resteranno modificabili e implementabili secondo le tue esigenze.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#5
Qui una tabella con il confronto tra i comandi DOS per i batch ed i corrispettivi in Linux
http://programing-tutorial.blogspot.it/2...mands.html
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#6
(13-06-2013, 19:44 )zafran Ha scritto: Poco male: l'efficientissimo Majorana forum team vigila.

Comunque, scorrendo i tuoi commenti negli script non ci trovo nulla che non si possa riscrivere alla volèe.
Mi resta come al solito oscura, invece, la parte riferita alla codifica sulla quale mi sa che ti conviene approfondire e, se possibile, intervenire a monte.
L'uso di cp1252 è destinato (è stato fatto apposta) a generare casini e forme insidiose di dipendenza, quindi se fosse possibile avere già gli originali in utf-8 sarebbe un bel passo avanti.
Se invece non è possibile, occorre informare lo script che gli si stanno dando anche dei caratteri non standard o, eventualmente, fare un doppio passaggio con qualcosa tipo dos2unix o fromdos che credo possano servire alla bisogna.

Mi sembra un'ottima idea di restare su script fatti da te che sicuramente anche in futuro resteranno modificabili e implementabili secondo le tue esigenze.

forse mi conveniva mettere anche le righe del txt Smile Smile Smile Smile Smile Smile

l'uso di chcp è stato messo ( su consiglio ) in relazione al fatto che vado a leggere un file txt con all'interno i nomi dei file da escludere dalle copie e dalle compressioni attualmente il file txt ha queste righe:
Codice:
thumbs.db
*.DS_Store
desktop.ini
~*.tmp
~*.doc
può influire???? si può ignorare???

(13-06-2013, 21:47 )BAT Ha scritto: Qui una tabella con il confronto tra i comandi DOS per i batch ed i corrispettivi in Linux
http://programing-tutorial.blogspot.it/2...mands.html
la maggior parte dei comandi bene o male li conoscevo già però ho problemi nel capire le strutture dei comandi vanno bene e che opzioni usare per i vari comandi con i manuali non mi trovo molto ( per non parlare dell'inglese )
Cita messaggio
#7
Come procede il lavoro?
Ci fai vedere qualcosa?
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#8
(17-06-2013, 15:31 )zafran Ha scritto: Come procede il lavoro?
Ci fai vedere qualcosa?

il lavoro procede molto a rilento non sono ancora riuscito a vedere niente Sad Sad in questi giorni sono stato un pò preso Smile Big Grin XD
Cita messaggio
#9
ecco come procede il lavoro per ora non troppe modifiche sto ancora cercando di capire parecchie cose ( le descrizioni e i percorsi ( questi anche perchè devo ancora capire in che percorso andranno a finire in quanto non ho ancora fatto l'installazione) le ho lasciate invariate apposta)

il primo file che si chiama salva.bat imposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / - per non avere problemi con le directory dopo verifica la presenza della directory principale "backup" ed in mancanza la crea e poi verifica la presenza anche della cartella "log" ed in mancanza crea anche quella dopo di che lancia due file bat creando anche un txt come log di tutte le operazioni fatte e le mostra anche tramite il programma WTEE che sono i veri e propri script di backup uno è una copia in chiaro di tutti i file del gestionale e di tutti i file presenti nella directory documenti che sono stati modificati da una determinata data in questo caso la data odierna l'altro fa la stessa cosa solo che invece che in chiaro la fa compressa finita l'esecuzione dei due script esce

Codice:
#!/bin/bash
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
mkdir Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist d:\Backup\Log (
ECHO La cartella d:\Backup\Log esiste già
goto process
) else (
ECHO La cartella d:\Backup\Log non esiste e sarà ora creata
)
mkdir Log
goto fine
:process
cd Log
cd..
:fine
cd\
c:
cd\
copia.sh | tee "D:\Backup\Log\copia %data% %time%.txt"
backup.sh | tee "D:\Backup\Log\backup %data% %time%.txt"
cd\
exit


il secondo file che si chiama copia.bat per sicurezza reimposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / - per non avere problemi con le directory dopo verifica la presenza della directory principale di backup ed in mancanza la crea poi verifica la presenza di una directory chiamata "Non Compressi" ed in mancanza la crea poi verifica la presenza di una directory chiamata "Fnet" ed in mancanza la crea in questa cartella verranno copiati i file del gestionale poi verifica la presenza di una directory chiamata "Documenti" ed in mancanza la crea in questa cartella verrano copiati i documenti dopo lancia il comando DOFF per avere la data odierna da dare in pasto al comando xcopy dopo di che ci sono le due righe di comando di xcopy una per i documenti e una per il gestionale con le relative opzioni che io ho ritenuto necessarie


Codice:
#!/bin/bash
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
mkdir Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist "d:\Backup\Non Compressi" (
ECHO La cartella d:\Backup\Non Compressi esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi non esiste e sarà ora creata
)
mkdir "Non Compressi"
cd "Non Compressi"
goto fine
:process
cd "Non Compressi"
:fine
if exist "d:\Backup\Non Compressi\Fnet" (
ECHO La cartella d:\Backup\Non Compressi\Fnet esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi\Fnet non esiste e sarà ora creata
)
mkdir Fnet
cd Fnet
cd..
goto fine
:process
cd Fnet
cd ..
:fine
if exist "d:\Backup\Non Compressi\Documenti" (
ECHO La cartella d:\Backup\Non Compressi\Documenti esiste già
goto process
) else (
ECHO La cartella d:\Backup\Non Compressi\Documenti non esiste e sarà ora creata
)
mkdir Documenti
cd Documenti
cd..
goto fine
:process
cd Documenti
:fine
cd\
c:
doff mm-dd-yyyy > tempdata.txt
rem per completo
rem doff mm-dd-yyyy -9999 > tempdata.txt
@echo on
for /F %%x in (tempdata.txt) do xcopy "f:\Documenti\*.*" "d:\Backup\Non Compressi\Documenti\Documenti %data% %time%" /D:%%x /c /v /f /i /s /e /k /r /h /y /z /Exclude:lista.Txt
xcopy "f:\fnet\*.*" "d:\Backup\Non Compressi\Fnet\Fnet %data% %time%" /c /v /f /i /s /e /k /r /h /y /z /Exclude:lista.Txt
@echo off
cd\
c:
cd\


il secondo file che si chiama backup.bat per sicurezza reimposta la tabella di codici per leggere correttamente le lettere accentate di un file txt poi imposta la variabile data da date cambiando gli / - per non avere problemi con le directory dopo verifica la presenza della directory principale di backup ed in mancanza la crea poi verifica la presenza di una directory chiamata "Compressi" ed in mancanza la crea poi verifica la presenza anche della cartella "Compressi" ed in mancanza crea poi verifica la presenza di una directory chiamata "Fnet" ed in mancanza la crea in questa cartella verranno creati i file compressi del gestionale poi verifica la presenza di una directory chiamata "Documenti" ed in mancanza la crea poi verifica la presenza anche della cartella "Completo" ed in mancanza crea qui ci sarà un file compresso iniziale di tutti i documenti e un secondo file compresso sempre aggiornato con tutti i file modificati poi verifica la presenza anche della cartella "Incrementale" ed in mancanza crea in questa cartelle verranno creati i file compressi con i soli file modificati dall'ultimo backup singolarmente non assieme a tutti i file poi verifica che il file documenti.7z esista che è il file che viene usato come base per gli aggiornamenti ed eventualmente lo crea in mancanza di esso crea anche un file "documenti completo data ora.7z" poi crea un file new.7z con i file modificati dall'ultimo backup in seguito lo sposta nella cartella "Incrementale" rinominandolo "documenti data ora.7z in seguito aggiorna il file documenti.7z che usa come base per la creazione dell'incrementale dopodiche crea un file chiamato "fnet data ora.7z" che conterrà tutti i file del gestionale finito questo torna al salva.bat per chiudere tutto


Codice:
#!/bin/bash
@echo off
setlocal
:: imposta i caratteri di Windows, dato che nelle prossime righe sarà letto un file txt
:: (per leggere correttamente i caratteri accentati)
chcp 1252
:: imposta la variabile data con la data odierna
set data=%date%
:: cambia / con - altrimenti fa casino con le directory :-)
set data=%data:/=-%
:: verifico la presenza delle cartelle per il backup ed eventualmente le creo
d:
cd\
if exist d:\Backup (
ECHO La cartella d:\Backup esiste già
goto process
) else (
ECHO La cartella d:\Backup non esiste e sarà ora creata
)
mkdir Backup
cd Backup
goto fine
:process
cd Backup
:fine
if exist d:\Backup\Compressi (
ECHO La cartella d:\Backup\Compressi esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi non esiste e sarà ora creata
)
mkdir Compressi
cd Compressi
goto fine
:process
cd Compressi
:fine
if exist d:\Backup\Compressi\Fnet (
ECHO La cartella d:\Backup\Compressi\Fnet esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Fnet non esiste e sarà ora creata
)
mkdir Fnet
cd Fnet
cd..
goto fine
:process
cd Fnet
cd ..
:fine
if exist d:\Backup\Compressi\Documenti (
ECHO La cartella d:\Backup\Compressi\Documenti esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti non esiste e sarà ora creata
)
mkdir Documenti
cd Documenti
goto fine
:process
cd Documenti
:fine
if exist d:\Backup\Compressi\Documenti\Completo (
ECHO La cartella d:\Backup\Compressi\Documenti\Completo esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti\Completo non esiste e sarà ora creata
)
mkdir Completo
goto fine
:process
cd Completo
cd ..
:fine
if exist d:\Backup\Documenti\Compressi\Incrementale (
ECHO La cartella d:\Backup\Compressi\Documenti\Incrementale esiste già
goto process
) else (
ECHO La cartella d:\Backup\Compressi\Documenti\Incrementale non esiste e sarà ora creata
)
mkdir Incrementale
goto fine
:process
cd Incrementale
cd\
:fine
:: verifica se il file documenti.7z esiste:
:: - se esiste, lo aggiorna nel nuovo file
:: - se non esiste, lo crea
d:
cd\
cd Backup
cd Compressi
cd Documenti
cd Completo
if exist "documenti.7z" (
ECHO Il file Documenti.7z esiste ora lo aggiorno
goto ritorno
) else  (
ECHO Il file documenti.7z non esiste e sarà ora creato
)
@echo on
"C:\Programmi\7-Zip\7z.exe" a -r -x@"c:\lista.txt" -y  -mx=9 "documenti.7z" "f:\documenti\*.*"
cp documenti.7z "documenti completo %data% %time%.7z"
@echo off
goto ritorno
:ritorno
:: Crea il file incrementale documenti con i file modificati dall'ultimo backup
@echo on
"C:\Programmi\7-Zip\7z.exe" u  "documenti.7z" -u- -up0q0r2x0y2z0w2!new.7z -mx=9 "f:\documenti\*.*" -r -x@"c:\lista.txt" -y
mv new.7z "d:\Backup\Compressi\Documenti\Incrementale\documenti %data% %time%.7z"
@echo off
:: Aggiorna i file documenti.7z
:: (se è appena stato creato, non dovrebbe aggiornare nulla)
@echo on
"C:\Programmi\7-Zip\7z.exe" u -r -x@"c:\lista.txt" -y  "documenti.7z" -mx=9 "f:\documenti\*.*"
@echo off
cd\
d:
cd\
cd Backup
cd Compressi
cd Fnet
::creo il backup di Fnet
@echo on
"C:\Programmi\7-Zip\7z.exe" a -r -x@"c:\lista.txt" -y -mx=9  "fnet %data% %time%.7z" "f:\fnet\*.*"
@echo off
endlocal
cd\




questo è il contenuto del file lista.txt che viene richiamato per escludere determinati file ( secondo me inutili al backup) se ne avete altri da suggerire ben vengano Smile


Codice:
thumbs.db
*.DS_Store
desktop.ini
~*.tmp
~*.doc




da quello che ho capito per 7zip non ci sono problemi basta modificare i percorsi Smile le opzioni sono le stesse per quanto riguarda copy move creazione e cambio directory dovrebbero essere tutti a posto ( credo ) però non so come comportarmi con xcopy le opzioni del comando che sto usando non sono riuscito a trovare le rispettive per cp ( sempre che sia il comando giusto da usare) e di conseguenza anche con il for del 2 file anche se non mi sembra di aver capito che ci siano problemi come per l'if ??? i vari set quello per la lista e quello per la data magari qui c'è un modo per fare tutto in una volta o anche senza bisogno di richiamarli in questo modo???? per il %time% dei file per inserire l'orario non penso ci siano problemi o sbaglio??? idem per come sostituire doff con date il quale nel primo riporta nel txt la data di oggi nel formato da me scelto nel secondo invece riporta la data nel formato da me scelto con 9999 giorni in meno per ricreare una copia completa ( questo volendo potrebbe anche essere forzato in altro modo) per poter essere accettata da xcopy come formato valido????
mi confermate che per ora ho "fatto" un buon lavoro o ho sbagliato tutto????
Cita messaggio
#10
Più che altro è la sintassi che andrebbe rivista e naturalmente anche certi comandi.
Io sto partendo proprio ora per qualche giorno e non ho tempo per leggere tutto e commentarlo, ti lascio qualche nota tanto per continuare a lavorarci, cominciando a migliorarne la sintassi in modo da poter googlare in modo più preciso.

I commenti con : : non li ho mai visti né credo che funzioni: usa # oppure un blocco tipo
: <<'COMMENTBLOCK'
echo "Questo blocco non verrà eseguito"
COMMENTBLOCK

Per settare una variabile basta scriverla (magari maiuscola):
VAR=variabile_settata
poi la richiami con $VAR

GOTO non c'è: usi un if e else va a exit o a una funzione già impostata

Se la directory non c'è, creala: io lo scrivo così
[ ! -d $DIR ]; mkdir -p $DIR

xcopy non esiste: esiste cp -R

echo off:
se qualcosa non lo vuoi in output va indirizzato a /dev/null

un ciclo for finisce con done

i manuali dei comandi li richiami con man:
man cp
e ci trovi tutte le opzioni disponibili.

Scusa se non dico di più ma sono di corsa, con google trovi di tutto a condizione di cercarlo con la sintassi giusta.
In questa sezione poi trovi i link a diverse guide di bash.
Buon lavoro.
In settimana nuova vedo di dirti di più (interessa anche a me una routine del genere).
Ma rsinc non ti darebbe già diverse di queste funzionalità già pronte e scodellate?.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio


Vai al forum: