środa, 6 lutego 2019

Różne rozmiary plików tar po użyciu polecenia ftp w Linuxie.

Potrzebowałem stworzyć skrypt, który będzie automatycznie archiwizował cały katalog /var/log i wysyłał go na zewnętrzny serwer ftp zainstalowany na komputerze w systemem Windows 2008 R2 Server.

Po napisaniu skryptu rozpocząłem testy. Skrypt poprawnie spakował, wysłał i skasował pliki. Problem pojawił się przy próbie rozpakowania otrzymanych plików. Zarówno oprogramowanie pod systemem Windows i pod systemem Linux zwracało błędy. Począwszy od uszkodzenia archiwum, błędów nagłówków skończywszy na błędach CRC. Po przeanalizowaniu problemu okazało się, że pliki przesłane z wykorzystanie polecenia "ftp" mają inną pojemność niż pliki wynikowe.

Przekopanie całego Internetu nie przynosiło konkretnego rozwiązania. Dopiero jeden post naprowadził mnie na rozwiązanie problemu. Po zalogowaniu użytkownika na serwerze ftp należało wykonać polecenie "binary" aby transmisja danych powiodła się i rozmiary plików były identyczne. Poniżej wklejam mój skrypt, w miejscach pogrubionych należy wstawić swoje dane i ustawienia:

#!/bin/sh
FILE1='logi.tar'
tar -zvcf /root/$FILE1 /var/log
ftp -inv 192.168.*.* << KONIEC
user użytkownik hasło
binary
put /root/$FILE1 /$FILE1
bye
KONIEC
rm /root/$FILE1
exit 0

Brak komentarzy:

Publikowanie komentarza