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).
Spis treści w artykule
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
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…
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01