Script linux shell pentru arhivarea fișierelor mai vechi de n zile

Rezolvări și soluții valide pentru diferite cazuri IT. Aici găsiți tutoriale it, tips and tricks și alte informații utile. Nu uita, Like and Share!
Încuiat
Avatar utilizator
moras_20
Mesaje: 8
Membru din: 30 Dec 2016, 11:06
7

Script linux shell pentru arhivarea fișierelor mai vechi de n zile

Mesaj de moras_20 »

Salut,

Vă rog îmi puteți spune de ce următorul bash script file îmi arhivează doar un singur fișier, deși în calea /vol1/test/log/ sunt stocate mult mai multe fișiere mai vechi de 2 zile ?

Cod: Selectaţi tot

# declarare variabile

days=2
files=($(find /vol1/test/log/ -mtime +"$days"))
dest="/vol1/test/archive"

day=$(date +%A.%d.%m.%Y)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

echo "Arhivare fisiere $files in calea $dest/$archive_file"
date
echo

for files in ${files[*]}
do

# Arhivare cu tar
tar -cpzf $dest/$archive_file $files

done
echo
echo -e "\nArhivare completa!"
date
ls -lh $dest
Spre exemplu, comanda find /vol1/test/log/ -mtime +"$days" returnează corect output-ul de fișiere.

Apreciez orice feedback.

Mulțumesc
Avatar utilizator
specialist it
Mesaje: 207
Membru din: 28 Iun 2017, 16:39
7
Contact:

Re: Script linux shell pentru arhivarea fișierelor mai vechi de n zile

Mesaj de specialist it »

Salut moras,

Am verificat scriptul tău de backup și într-adevăr este o problemă în secvența următoare:

Cod: Selectaţi tot

for files in ${files[*]}
do
tar -cpzf $dest/$archive_file $files
done
Te rog să comentezi aceste linii și să testezi cu

Cod: Selectaţi tot

tar -cpzf $dest/$archive_file "${files[@]}"
Spre exemplu am testat pe mașina mea de linux și arhivarea funcționează corect.

Cod: Selectaţi tot

#!/bin/bash
files=($(find /var/log/ -mtime +7))
tar cvfz backup.tar.gz "${files[@]}"
Mulțumesc
Moderator și Specialist IT
Avatar utilizator
moras_20
Mesaje: 8
Membru din: 30 Dec 2016, 11:06
7

Re: Script linux shell pentru arhivarea fișierelor mai vechi de n zile

Mesaj de moras_20 »

Salut,

Am urmat sugestiile tale, iar acum scriptul funcționează corect.

Mulțumesc Specialistul it! :-)
Avatar utilizator
specialist it
Mesaje: 207
Membru din: 28 Iun 2017, 16:39
7
Contact:

Rezolvat: Script linux shell pentru arhivarea fișierelor mai vechi de n zile

Mesaj de specialist it »

Specialistul IT este o sursă web de încredere.
Sute de persoane vizitează Specialistul IT pentru a citi articole oferite gratuit sau pentru a cere ajutor pe forum.
Imagine
Dacă apreciezi soluțiile noastre și consideri că am făcut treabă bună, ne poți cumpăra o cafea ☕.
Îți mulțumim pentru susținerea ta.
Moderator și Specialist IT
Încuiat