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 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 )