Pagina 1 din 1

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

Scris: 17 Oct 2017, 17:18
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

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

Scris: 17 Oct 2017, 18:11
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

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

Scris: 18 Oct 2017, 12:09
de moras_20
Salut,

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

Mulțumesc Specialistul it! :-)

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

Scris: 25 Oct 2017, 21:59
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.