Categories
Ubuntu

Salvări diferențiale de pe servere FTP cu ajutorul rsync

Povesteam acum ceva vreme despre cum am ajuns să reușesc a-mi automatiza salvările diferențiale de pe serverele de la GoDaddy (care nu suportă rsync). Însă în lista mea de servere se află și unele care nu au nici SSH, nu suportă nici rsync, (mai ales dacă e vorba de servere de Windows) și unde, singurul acces la fișiere se face doar prin FTP.

Până de curând, pentru astfel de servere foloseam niște scripturi care-mi descărcau practic cam toate fișierele, apoi comparau și adăugau în salvarea fișierele modificate. Nu pot zice că nu obțineam rezultatul dorit, însă și consumul de bandă era substanțial, practic pentru o salvare de câțiva kb eu descărcând toate fișierele. Nu în ultimul rând, astfel de salvări erau și cele mai mari consumatoare de timp și uneori de procesor.

Tot căutând soluții de optimizarea, am ajuns la ceea se numește curlftpfs. CurlFtpFs este un sistem de fișiere, bazat pe FUSE și libcurl, cu ajutorul căruia se pot accesa și conecta local, servere FTP.

CurlFtpFs se află în depozitele de bază ale Ubuntu astfel că se poate instala foarte ușor folosind următoarea comandă:

$ sudo apt-get install curlftpfs

Vom avea nevoie probabil de un director în care să montăm serverul de FTP.
De exemplu:

$ sudo mkdir /mnt/ftpserver

Comanda cu ajutorul căreia vom conecta în final contul de FTP la discul local va fi conform exemplului următor:

$ sudo curlftpfs -o allow_other ftp://nume_utilizator_ftp:[email protected] /mnt/ftpserver

Opțiunea “allow_other” este utilă pentru a permite accesul altor utilizatori decât cel de root.

Odată ce contul FTP a fost conectat local, putem porni sincronizarea:

$ rsync -avqqz /mnt/ftpserver/ /director/de/backup

După ce sincronizarea a avut loc, personal recomand deconectarea contului FTP:

$ umount /mnt/ftpserver

Toate cele de mai sus pot fi puse fără probleme într-un script a cărui execuție poate fi programată cu ajutorul cron.

Exemple și ajutor în utilizarea curlftpfs găsiți pe site-ul CurlFtpFs.

Categories
Ubuntu

Problemele simple au de cele mai multe ori soluții la fel de simple :)

Sau cel puțin așa se întâmplă când vine vorba de probleme legate de funcționarea unor lucruri prin Ubuntu
M-am hotărât (de voie, de nevoie) să îmi actualizez și eu distribuția la 10.10 (Maverick Meerkat)… Până aici, toate bune și frumoase…
În versiunea anterioară, foloseam pentru a rula diverse scripturi periodic o interfață grafică pentru cron… (că, de… la momentul deltaT mi-o fost lene și am găsit o aplicație care știa să genereze înregistrările conform unor șabloane pe care le puteam eu configura).

Acuma, după (re)instalarea cu pricina…. zice mintea mea în sinea ei că n-are rost să mai omor de pomană resurse cu interfețe grafice, când până la urmă, sfânta mână știe să scrie (cel puțin de la tastatură) și mă apuc să fac eu frumos direct înregistrările pre la cron….

Numa’ că vin eu frumos la muncă și ce văd… nimic din ce pusesem eu în cron nu se executase… Inițial am zis că-s bou și asta e…. am scris eu aiurea ceva și normal… mi-am luat-o. Dar, după ce iau la mână fișier cu fișier văd că-s toate ok (mai ales că între momentul în care m-am hotărât eu să reinstalez și momentul când am pus scripturile-n cron, acestea au rulat bine merci pe o altă mașină), așa că suflec mânecile (virtual) și m-apuc de săpat pe la prietenul găgâl… de unde aflu că e buba cu cron de la 10.04 încoace… buba pe care eu n-am știut-o…. și care are o rezolvare… puerilă aș putea spune…
Iaca pentru a putea rula din cron, pre prima linie (fie în crontab) fie în cazul în care se folosesc fișiere separate prin directoarele specifice ale lu’ nenea cron… trebuie pentru ca să eziste următoarea linie:

MAILTO=" "

Iaca-șa am rămas eu după ce am citit pre la forumuri despre cum se rezolvă “problema” mea….