Situatie
Solutie
Acest script va crea o arhivă cu numele format din numele directorului sursă și data curentă, în formatul nume_director_data.tar.gz
. De exemplu, dacă directorul sursă se numește documente
, iar data curentă este 2024-04-24, arhiva va avea numele documente_2024-04-24.tar.gz
.
În acest script, locația sursei este primul argument ($1
) și locația arhivei este al doilea argument ($2
). Dacă directorul arhivei specificat în al doilea argument nu există sau nu este accesibil, scriptul se va opri și va afișa un mesaj corespunzător.
————————————————————–
#!/bin/bash
# Verificăm dacă numărul corect de argumente este furnizat
if [ $# -ne 2 ]; then
echo “Mod de folosire: $0 <locatie_sursă> <locatie_arhivă>”
exit 1
fi
# Extragem argumentele
sursa=$1
arhiva=$2
# Verificăm dacă locația sursă există și este un director
if [ ! -d “$sursa” ]; then
echo “Locația sursă nu există sau nu este un director.”
exit 1
fi
# Verificăm dacă directorul arhivei există sau putem să-l creăm
arhiva_dir=$(dirname “$arhiva”)
if [ ! -d “$arhiva_dir” ]; then
echo “Directorul arhivei nu există sau nu este accesibil.”
exit 1
fi
# Obținem numele directorului sursă
nume_director=$(basename “$sursa”)
# Obținem data curentă
data=$(date +”%Y-%m-%d”)
# Construim numele arhivei folosind numele directorului și data curentă
nume_arhiva=”${nume_director}_${data}.tar.gz”
# Creăm arhiva
tar -czvf “${arhiva}” “${sursa}”
# Verificăm dacă arhiva a fost creată cu succes
if [ $? -eq 0 ]; then
echo “Arhiva a fost creată cu succes: ${arhiva}”
else
echo “A apărut o eroare în timpul creării arhivei.”
fi
————————————————————————–
Pentru a folosi acest script, salvează-l într-un fișier cu extensia .sh
(de exemplu, arhivare_auto.sh
) și dă-i permisiuni de execuție folosind chmod +x arhivare_auto.sh
. Apoi, poți rula scriptul furnizând calea către directorul pe care dorești să-l arhivezi ca primul argument și calea către locația dorită pentru arhivă ca al doilea argument, de exemplu:
./arhivare_auto.sh /calea/catre/director /calea/catre/arhiva.tar.gz
Leave A Comment?