Strona 1 z 1

bash - szukanie, pakowanie i wysylanie na serwer plików

: 04 kwietnia 2010, 14:53
autor: wenu
Witam.
Staram się napisać skrypt, który wyszuka w katalogu wszystkie pliki *srs, następnie spakuje każdy plik osobno zipem z oryginalną nazwą pliku, czyli np. plik 123.srs spakuje i będzie to 123.srs.zip.
Następnie skrypt zaloguje się na serwer ftp i wrzuci każdy plik do odpowiedniego katalogu. Na razie wypociłem coś takiego:

Kod: Zaznacz cały

#!/bin/bash
filename="*.srs"
logname="log.txt"
filename2="*.dem.zip"
hostname="xxx"
username="xxx"
password="xxxr"
katalog="test"
data=`date`
zip $filename $filename
echo "wysylanie na $hostname pliku o nazwie $filename do katalogu
$katalog"

echo "$data -wyslano do serwera" >> log.txt
ftp -in $hostname <<**

quote USER $username
quote PASS $password

cd test2
cd $katalog
binary
put $filename2
quit


**
Muszę poparwić aby szukał pliku i pakował, jeśli znajdzie, domyślam się, że trzeba użyć ,,while''.
Proszę o pomoc.

Szukanie może odbyć się chyba poprzez:

Kod: Zaznacz cały

find -type f -printf "%p\n" | grep .srs$
Pozdrawiam i życzę Wesołych Świąt.

: 04 kwietnia 2010, 21:53
autor: Czocher
Jeżeli szukasz wszystkich plików *.srs tylko w jednym katalogu a nie w drzewie, to możesz to zrobić z pomocą ,,for'':

Kod: Zaznacz cały

for file in *.srs
do

done
Zmienna ,,file'' w połączeniu z ,,for'' przyjmować będzie kolejne pełne nazwy wszystkich plików z rozszerzeniem: .srs

: 04 kwietnia 2010, 22:54
autor: lessmian2
Może to Ci się przyda:

Kod: Zaznacz cały

find . -type f -iname '*.srs' -exec zip {}.zip {} \;
Znajdzie wszystkie pliki *.srs w bieżącym katalogu i spakuje zipem.

: 05 kwietnia 2010, 12:22
autor: wenu
lessmian2, ale czy każdy plik będzie osobnym archiwum, czy wszystko w jednym?

: 05 kwietnia 2010, 12:32
autor: lessmian2
Dla każdego pliku *.srs zostanie wywołane polecenie

Kod: Zaznacz cały

zip plik.srs.zip plik.srs
Jeden plik to jedno archiwum zip.

: 19 stycznia 2011, 17:21
autor: wenu
Witam.
Na nowo borykam się z tym skryptem lecz w nieco zmienionej formie.

A więc, szukanie plików *srs, pakowanie ich np. zipem z oryginalną nazwą następnie kopiowanie plików do zdefiniowanego katalogu lokalnego a na koniec.

Pozdrawiam i liczę na Waszą pomoc.

Dodane:
Niestety nadal z moim skryptem jest coś nie tak. Szukam w katalogu pliki i pakuję.

Kod: Zaznacz cały

gzip -1f -S .zip /home/(..)
Niestety wynik tego polecenia jakoś obcina pliki. Oryginał pliku zajmuje np. 18MB a spakowany zip 10KB i plik jest uszkodzony. Myślę nad innym formatem, tylko jak to ugryźć?



Pozdrawiam