Dzisiejszy wpis będzie niejako kontynuacją poradnika który opublikowałem na początku roku, a dotyczył konfiguracji (i użytkowania) Copy w systemie Linux – a konkretnie w Raspberry Pi (Raspbian/Debian), z poziomu konsoli.

Dziś wykorzystamy pewne elementy które tam były opisane, dodamy kilka nowych i sprawdzimy jak można wykorzystać Copy do kopi zapasowej danych na serwerze (np. VPS).

Kopia zapasowa (np. plików serwera) na Copy

Dlaczego Copy? Bo na start macie 20 GB, a do tego możecie szybko powiększyć dostępną przestrzeń o kolejne 25 GB – co daje łącznie 45 GB, czyli raczej wystarczy miejsca na kilka kopii zapasowych na potrzeby serwera WWW.

Instalacja Copy w systemie Linux/Debian

Zaczynamy od pobrania pliku z plikami aplikacji Copy:

sudo wget --no-check-certificate https://copy.com/install/linux/Copy.tgz -O /usr/local/copy.tgz

Następnie musimy rozpakować pobrany plik:

cd /usr/local/
sudo tar -zxvf copy.tgz

Po tej operacji w katalogu „/usr/local/” powinien pojawić się katalog „copy”, w którym znajdziemy 3 katalogi:

  • armv6h – dla systemów zbudowanych na układach ARM v6, np. Raspberry Pi
  • x86 – dla systemów opartych o układy x86 (32 bit)
  • x86_64 – dla systemów opartych o układy x64 (64 bit)

Jest to relatywnie ważny moment – tu wybieracie odpowiednią platformę, a więc i ścieżkę dostępu do plików wykonywalnych.

Konfiguracja Copy i pierwsze uruchomienie

Pierwsze uruchomienie CopyConsole jest o tyle istotne, bo następuje tu autoryzacja maszyny – wymaga w późniejszych krokach:

sudo /usr/local/copy/x86_64/CopyConsole -u=adres@email -r=/backup/copy

Na podanym przykładzie wybrałem system x64, mój login w Copy to „adres@email”, a „/backup/copy” to miejsce lokalizacji katalogu domowego Copy.

Po uruchomieniu wpisujemy hasło, po czym Copy zacznie synchronizować dane. Jeśli zamierzamy korzystać z CopyConsole – pozwalamy kontynuować, jeśli zamierzamy korzystać z CopyCmd – po autoryzacji przerywamy prace (ctr+z).

CopyConsole – pełna synchronizacja

Z Copy możemy korzystać w 2 trybach, pierwszy wywołujemy poleceniem:

sudo /usr/local/copy/x86_64/CopyConsole -u=adres@email -r=/backup/copy

Ew. z mniejszym priorytetem:

nice -n 10 sudo /usr/local/copy/x86_64/CopyConsole -u=adres@email -r=/backup/copy

Powoduje to automatyczną synchronizację katalogu „/backup/copy” z naszym kontem Copy – działa w 2 strony.

Jeśli chcemy synchronizować dodatkowe pliki czy katalogi – wystarczy skorzystać z linków symbolicznych:

sudo ln -s /jakiś/katalog/do/synchronizacji /backup/copy/jakiś-katalog

Automatyczne uruchamianie za pomocą skryptu

Warto zautomatyzować proces uruchamiania tego polecenia, co można osiągnąć np. za pomocą takiego skryptu:


#!/bin/sh
### BEGIN INIT INFO
# Provides: copyconsole
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Autostart CopyConsole (init.d script)
# Description: Autostart CopyConsole - CONFIG Copy first for linux_user_name!
### END INIT INFO

# Author: Rembiejewski.pl
# RAMdisk info URL: https://webinsider.pl/copy-backup-serwer-vps

### START config here:

SYSTEM_USER="linux_user_name"
COPY_HOME_DIR="/backup/copy"
COPY_DIR="/usr/local/copy/x86_64/CopyConsole"

### END config here.

start() {
echo "CopyConsole start"
if [ -x $COPY_DIR ]; then
start-stop-daemon -b -o -N 10 -c $SYSTEM_USER -S -u $SYSTEM_USER -x $COPY_DIR -- -daemon
fi
}

stop() {
echo "CopyConsole stop"
if [ -x $COPY_DIR ]; then
start-stop-daemon -o -c $SYSTEM_USER -K -u $SYSTEM_USER -x $COPY_DIR
fi
}

case "$1" in

start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: /etc/init.d/copyconsole {start|stop|restart}"
exit 1

esac

exit 0

Skrypt możecie pobrać za pomocą polecenia:

sudo wget https://webinsider.pl/add/download/?link=copyconsole -O /etc/init.d/copyconsole

Następnie:

sudo nano /etc/init.d/copyconsole
sudo chmod +x /etc/init.d/copyconsole
sudo ln -s /etc/init.d/copyconsole /bin/copyconsole
update-rc.d copyconsole defaults
W Debian 8 Jessie zamiast powyższego polecenia można użyć:

sudo insserv nazwa_usługi

A czasem – przy niektórych zależnościach start/stop – jest to wręcz wymagane (a przynajmniej mocno zalecane).

 

Od tego momentu skrypt będzie startował automatycznie razem z systemem i uruchamiał CopyConsole zgodnie ze zdefiniowanymi parametrami.

Skryptem (i tym samym usługa CopyConsole) można też sterować ręcznie, za pomocą komend:

sudo service copyconsole start
sudo service copyconsole stop
sudo service copyconsole restart

CopyCmd – działania na żądanie

Można też zamiast synchronizacji wysyłać i pobierać dane z Copy, w tym celu korzystamy z poleceń:

sudo /usr/local/copy/x86_64/CopyCmd cloud put -r /jakiś/katalog/do/wysłania /katalog/docelowy/w/Copy

sudo /usr/local/copy/x86_64/CopyCmd cloud get -r /lokalizacja/lokalna/ /jakiś/katalog/do/pobrania/z/Copy

Można również dodać „nice -n 10” na początku by obniżyć priorytet procesu/operacji.

Podane polecenie można np. dodać do skryptu wykonującego kopię zapasową, czy inną operację – np. uruchamianą za pomocą CRONa…

Please increase the ulimit level

W trakcie pracy CopyConsole może pojawić się błąd/komunikat:

Please increase the ulimit level for open handles in order to detect file changes properly

By to skorygować edytujemy plik:

sudo nano /etc/sysctl.conf

I na samym końcu dodajemy:

# Copy.com
 fs.inotify.max_user_watches = 40000
 fs.file-max = 800000

Po zapisaniu zatwierdzamy zmiany:

sudo sysctl -p

Teraz powinno być już OK…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk