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!
Închis
Avatar utilizator
moras_20
Mesaje: 8
Membru din: 30 Dec 2016, 11:06
Aprecieri acordate: 1 ✔

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

Mesaj de moras_20 » 17 Oct 2017, 17:18

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: Selectează 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: 110
Membru din: 28 Iun 2017, 16:39
Aprecieri acordate: 4 ✔
Aprecieri primite: 59 ✔
Contact:

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

Mesaj de specialist it » 17 Oct 2017, 18:11

Salut moras,

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

Cod: Selectează tot

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

Cod: Selectează tot

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

Cod: Selectează tot

#!/bin/bash
files=($(find /var/log/ -mtime +7))
tar cvfz backup.tar.gz "${files[@]}"
Mulțumesc


Moderator Unic - Forum Specialistul IT

Avatar utilizator
moras_20
Mesaje: 8
Membru din: 30 Dec 2016, 11:06
Aprecieri acordate: 1 ✔

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

Mesaj de moras_20 » 18 Oct 2017, 12:09

Salut,

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

Mulțumesc Specialistul it! :-)



Avatar utilizator
alex23popescu
Site Admin
Mesaje: 25
Membru din: 06 Oct 2016, 16:20
Aprecieri acordate: 22 ✔
Aprecieri primite: 4 ✔
Contact:

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

Mesaj de alex23popescu » 25 Oct 2017, 21:59

Imagine


Cu stimă,
Admin Forum Specialistul IT

Închis

Utilizatori online

Utilizatori care navighează pe acest forum: Nici un utilizator înregistrat și 0 vizitatori

Subiecte active