Synchronizacja z serwerem hostingowym

biscand

Nowy użytkownik
Noobie
May 7, 2016
5
1
3
41
QNAP
Ethernet
100 Mbps
Witam,

piszę panel administracyjny do zarządzania plikami firmowymi przez stronę www.

Po stronie serwera klienta (home.pl) znajduje się struktura katalogów którą chciałbym synchronizować w obie strony z qnap'em stojącym w firmie.
Kiedy firma dołoży katalog lub plik na firmowym qnapie ma on aktualizować piki na home.pl
Kiedy pojawi się nowy plik na serwerze home.pl ma on się automatycznie pojawić na qnapie w firmie.

Bardzo proszę o pomoc w doborze jakiegoś rozwiązania, najlepiej niedrogiego.
 
To że rsync to wiem, zastanawia mnie tylko jak to działa w praktyce używając qnap i ftp po stronie hostingu.
QNAP TS-212P wystarczy?
Jakieś doświadczenia praktyczne przy synchronizacji qnap z ftp na home.pl bądż ftp na nazwa.pl?
 
Od nazwa.pl dostałem odpowiedź, że rsync i rtrr tylko na dedyku/vps. Home.pl nic nie odpisał. Myślę, że linuxpl.com bez problemu by to ogarnął lecz niestety jestem skazany nad uniwersalne rozwiązanie pod przeciętny hosting.

Możesz coś podpowiedzieć jak to robisz po FAQ SSH?
Masz to jakoś zautomatyzowane? wget? sftp? ftp? scp? sshfs?
Napisz proszę coś więcej.
 
ja używam rsync'a do przewalania kopii zapasowej z jednego serwera a potem na drugi.

mam jedną centralna maszynę (ubuntu na QNAPie) które ma powymieniane klucze z potrzebnymi maszynami.

Co 10 minut odpala się skrypt BASH co pobiera dane z jednego sprzętu za pomocą rsync'a , sprawdza MD5 tych plików i przewala na drugą maszynę i ponownie sprawdza checksumy, jest tam również logowanie informacji do MySQL, które oglądam sobie za pomocą strony w PHP.

Jak coś się sypnie to widze info : "bad checksums" czy "connection failed".

Jeśli jest naprawdę ci potrzebny RTRR to dla linuxów jest The DRBD User’s Guide - DRBD Users Guide (9.0)
 
  • Like
Reactions: kaktus
Dzięki, niestety rsync odpada. Sumy i logi fajna sprawa.
Na dniach będę to trawił i wymyślę jakieś rozwiązanie co obsługuje komercyjne hostingi.
Rozgryzłem odrobinę temat i z tego co się dowiedziałem to można liczyć na prawidłowe działanie daemona rsync na serwerach linuxpl.com.

Innym rozwiązaniem jakie wymyśliłem jest użycie sshfs.
- montujemy przestrzeń dyskową hostingu na naszym serwerze za pomocą sshfs
- dodajemy sambe
- rsync synchronizuje katalogi z samby i sshfs
Takie obejście braku rsynca po stronie hostingu, przenosimy zapotrzebowanie na procesor na naszą stronę i zjadamy tylko transfer.
Problemy jednak mogą się pojawić w stabilnym działaniu przy pozostawieniu tego bez nadzoru, konfiguracja nie jest prosta.
Ładnie to wygląda w 3 myślnikach jak powyżej ale jak dojdzie cała konfiguracja zaczynając od portów na routerze, static ip, samba, sshfs, wymiana kluczy, grupy userów, skrypty startowe montujące sshfs, rsync, bandwidth limit... to robi się nieciekawie.

Najlepiej było by napisać jakiś skrypt co ogarnie wszystko od początku do końca i wykona się przy każdym uruchomieniu serwera/połączeniu/rozłączeniu. Gdyby do tego doszedł apache i jakaś konfiguracja przez przeglądarkę było by nieźle. Klient nie ogarnie FAQ SSH.

Dodam jeszcze, że pomysł był użycia banana pi z sata i dyskiem ale wciąż pozostaje i tak kwestia backupu/raid więc qnap jest raczej jedynym słusznym rozwiązaniem.

Można gdzieś dostać jakiegoś prostego qnapa na testy? Coś prostego i taniego typu TS-212P
 
POPRAWKA: HOSTING NA LINUXPL NIE DAJE RSYNC'A

Szkoda, że dopiero po czasie się rozmyślili bo zdążyłem kupić TS-251

No to teraz chcę zrobić coś takiego, podmontować zdalny katalog z hostingu na qnap i rsync z katalogiem samby.

Pigers, gdybyś miał jakieś wskazówki to proszę daj znać.
 
Bash:
cat /exploit/scripts/DownloadBackup.sh
#VaRs
Dedic_Download_Path=/export/seph.pl
Local_Download_Path=/export/QUbuntu
Download_Date=`date +"%Y-%m-%d"`
Download_Success=False
SQL_User=root
SQL_Password=ROOT_PWD
Local_TV_Path=/home/marek/.sickgear
Local_TV_Name=sickgear
Keep_Days=30
#Script
start=`date +%S`
/usr/bin/rsync -az --stats backuper:/export/ $Dedic_Download_Path
if [ $? -eq 0 ]; then
Download_Success=OK
else
Download_Success=KO
fi
end=`date +%S`
echo "INSERT INTO Backupz (Download_Date,Download_Status,Download_RunTime) VALUES ('$Download_Date', 'Backup downloaded $Download_Success', '`expr $end - $start`');" | mysql -u$SQL_User -p$SQL_Password Backups;
#Local backup
mkdir -p $Local_Download_Path/$Local_TV_Name/
#Change date to number of day
Download_Date=`date +"%u"`
sudo service $Local_TV_Name stop
tar -zcf $Local_Download_Path/$Local_TV_Name/$Local_TV_Name-$Download_Date.tgz $Local_TV_Path
sudo service $Local_TV_Name start
#Copy backup script to export location ... just in case .. IDIOT !
cp -p /exploit/scripts/DownloadBackup.sh $Local_Download_Path/
#Save WWW
tar -zcf $Local_Download_Path/html.tgz /var/www/html/
#Save Observium
tar -zcf $Local_Download_Path/Observium.tgz /opt/observium/
#DB is backed up by Webmin scripts - nothing to be done.
#Cleanup
#(ls -t /export/QUbuntu/ |head -n 5;ls)|sort|uniq -u|sed -e 's,.*,"&",g'|xargs rm

Bash:
cat backup_check.sh
#! /bin/sh
MD5TMP=/tmp/backup_list.md5
BACKUPSMD5=/share/XXX/export/seph.pl/files.md5
#MySQL access data
SQL_User=root
SQL_Password=ROOT_PWD
SQL_Server=QUbuntu
SQL_DB=Backups
##########
grep .gz $BACKUPSMD5 | awk 'BEGIN {FS="td>"} {print $4 $2}' |sed -e "s/<\// /g" > $MD5TMP
REZ=$(md5deep -bX $MD5TMP `dirname $BACKUPSMD5`/* | wc -l)
if [ $REZ == "3" ] ; then
echo "INSERT INTO Backupz (Download_Date,Download_Status,Download_RunTime) VALUES ('`date +"%Y-%m-%d"`','Backup copy is valid','0');" | /mnt/ext/opt/mariadb/bin/mysql  -u $SQL_User -h $SQL_Server -p$SQL_Password $SQL_DB;
else
echo "INSERT INTO Backupz (Download_Date,Download_Status,Download_RunTime) VALUES ('`date +"%Y-%m-%d"`','Backup copy is NOTvalid','-999');" | /mnt/ext/opt/mariadb/bin/mysql  -u $SQL_User -h $SQL_Server -p$SQL_Password $SQL_DB;
fi

upload_2016-6-24_18-1-17.png

dotka na forum mile widziana :)
 

Users search this thread by keywords

  1. Webmin