Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2020-04-08 14:26:27

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

NextCloud - kopia chmury

Witam.
Mam od jakiegoś czasu chmurę NextCloud postawioną na Rapsberry Pi 4. Wszystko ładnie chodzi, na bieżąco wykonuje kopie wybranych katalogów z laptopa i komórek. Jednocześnie zdaję sobie sprawę, że Raspberry Pi 4 z jakimś tanim dyskiem ssd nie jest zbyt pewnym i niezawodnym rozwiązaniem.  Mam wykupiony VPS (postawiłem na nim VPN) i zastanawiam się nad wykorzystaniem go do tworzenia kopii.
Jak to zrobić, aby po ewentualnej awarii mojej chmury (załóżmy, że padnie dysk) i ponownej konfiguracji systemu w łatwy sposób przywrócić dane?

Offline

 

#2  2020-04-09 09:30:44

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Offline

 

#3  2020-04-09 09:33:24

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Sprawdzałem to. Jest do tego aplikacja. Niby coś tworzy, ale nie pokazuje gdzie i nie ma opcji wysłania na zewnętrzny serwer. Myślałem, że da się to jakoś bardziej zautomatyzować.

Ostatnio edytowany przez Grabek (2020-04-09 09:39:13)

Offline

 

#4  2020-04-09 09:43:54

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: NextCloud - kopia chmury

cron + podmontowany zasób zdalny leżący na zewnętrznym serwerze lub z użyciem ssh.

Ostatnio edytowany przez arecki (2020-04-09 09:46:22)

Offline

 

#5  2020-04-09 09:49:14

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Będę myślał nad tym. Zastanawia mnie ten fragment z linku powyżej:

Kod:

Backup folders
Simply copy your config, data and theme folders (or even your whole Nextcloud install and data folder) to a place outside of your Nextcloud environment. You could use this command:

rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/

Czy w ten sposób skopiuje wszystko? To znaczy, czy w razie awarii i ponownej czystej instalacji Nextcloud wystarczy to przywrócić, aby mieć dostęp do wcześniejszej konfiguracji i zapisanych plików?

Mam wykupiony VPS na Debianie. Czy wystarczy, że utworzę na nim udostępniony katalog? Loguję się do niego przez SSH. Czy będzie to bezpieczne?

Ostatnio edytowany przez Grabek (2020-04-09 09:50:03)

Offline

 

#6  2020-04-09 09:59:08

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: NextCloud - kopia chmury

Zapomniałeś o bazie danych.
Zdefiniuj bezpieczne.

Offline

 

#7  2020-04-09 10:06:10

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Czyli potrzebuje jeszcze

sqlite3 data / owncloud.db .dump> nextcloud-sqlbkp_`date + "% Y% m% d" .bak

Co rozumiesz poprzez pojęcie "Zdefiniuj bezpieczne"?

Offline

 

#8  2020-04-09 10:21:28

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: NextCloud - kopia chmury

https://pl.wikipedia.org/wiki/Poj%C4%99cie
https://pl.wikipedia.org/wiki/Definicja

Definicja (z łac. definitio; od czas. definire: de + finire, „do końca, granicy”; od finis: granica, koniec) – wypowiedź o określonej budowie, w której informuje się o znaczeniu pewnego wyrażenia przez wskazanie innego wyrażenia oddającego sens sformułowania.

Ostatnio edytowany przez arecki (2020-04-09 10:23:46)

Offline

 

#9  2020-04-09 10:30:39

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Wiem co znaczy słowo " definicja" Ale nadal nie wiem o co Ci chodziło.

Offline

 

#10  2020-04-09 14:59:57

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

1.
Utworzyłem na zdalnym serwerze nowego użytkownika (żeby jako root się nie logować). Ale mam problem. Zgodnie z opisem na https://docs.nextcloud.com/server/stable/admin_manu … e/backup.html należy przejść w tryb konserwacji, ale po wydaniu polecenia

Kod:

$ sudo -u www-data php occ maintenance:mode --on

otrzymuje komunikat: "Could not open input file: occ"

Podejrzewam, że jest zła lokalizacja. Plik occ znalazłem w /var/www/html/nextcloud. Jednakże polecenie (jako root)

var/www/html/nextcloud/occ maintenance:mode --on

daje odpowiedź: "Brak dostępu"

2. Jak już uporam się punktem 1, to nastepnie należy skopiować folder z konfiguracją

rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/

I teraz nie wiem, czy dobrze rozumiem. Chodzi o folder w którym mam zapisaną konfigurację i konta poszczególnych użytkowników (tam też znajdują się ich skopiowane pliki).
Następnie kopia bazy danych. Korzystam z SQLite.

sqlite3 data/owncloud.db .dump > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Jednakże plik owncloud.db znajduje się w tym samym folderze, co konfiguracja kont i profile użytkowników. Więc chyba wystarczy jak utworzę tylko kopię folderu data (tam wszystko jest). No chyba, że się mylę i potrzebuje coś jeszcze?

Edycja
Poradziłem sobie z punktem 1. Zastanawia mnie teraz punkt drugi. Podpowiedzcie czy dobrze myślę: chcę napisać skrypt, który najpierw przełączy w tryb konserwacji, następnie wykona kopie i wyłączy tryb konserwacji. Nie mam w tym doświadczenia, ale przełączyć w tryb konserwacji i wykonać kopie będzie łatwo. Zastanawia mnie co z wyłączeniem trybu konserwacji? Czy jeśli dam go bezpośrednio po komendzie kopiowania to polecenie przełączenia poczeka na zakończenie kopiowania? Skrypt oczywiście później do Crona i można zapomnieć.

Ostatnio edytowany przez Grabek (2020-04-09 18:26:22)

Offline

 

#11  2020-04-09 19:32:59

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: NextCloud - kopia chmury

Coś przekombinowaleś z tym rsynciem u Siebie :P

Mam takiego skrypcia, robi bakcupy vpsa na lokalny komp.
Działa dosyć grzecznie.

Kod:

#!/bin/bash

echo $$ >> /cgroup/net_cls/users/netout/tasks

VPSHOST="51.68.138.154";
BACKUPDIR="/home/Serwery/vps115645.ovh.net/"
DBUSER="robot";
DBPASS="E8zAN9XPlmbTXk5gB66dmofdoirlqRmflYPUdGScXymKY18tVIUknbiFqHirZZ4dz";


mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --all-databases |xz > $BACKUPDIR/mysqldb/all.sql.gz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --all-databases  --add-drop-table |xz > $BACKUPDIR/mysqldb/all-drop.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table mysql |xz > $BACKUPDIR/mysqldb/mysql-drop.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table mailsql |xz > $BACKUPDIR/mysqldb/mailsql.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction   --add-drop-table prosody |xz > $BACKUPDIR/mysqldb/prosody.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table spamd |xz > $BACKUPDIR/mysqldb/spamd.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table wordpress503 |xz > $BACKUPDIR/mysqldb/wordpress503.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table rmail1 |xz > $BACKUPDIR/mysqldb/rmail1.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table rmail2 |xz > $BACKUPDIR/mysqldb/rmail2.sql.xz
mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --add-drop-table baikal1 |xz > $BACKUPDIR/mysqldb/baikal1.sql.xz



rsync -aAXvx --progress -e ssh vps:/usr/local/sbin/ $BACKUPDIR/local/sbin/;
rsync -aAXvx --progress -e ssh vps:/usr/local/bin/ $BACKUPDIR/local/bin/;
rsync -aAXvx --progress -e ssh vps:/etc  $BACKUPDIR/etc/;
rsync -aAXvx --progress -e ssh vps:/home/www/ $BACKUPDIR/www/;

Przerobić go możesz dowolnie.

Pozdro


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2020-04-09 20:36:29

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Dzięki. Myślę, że wykorzystam.
Z tego co widzę, to uruchamiasz go na lokalnym kompie i pobiera dane z vpsa? Ja chcę zrobić to odwrotnie. Lokalna chmura ma wysyłać kopie na zewnętrzny vps. Zainteresowały mnie te... nie wiem jak to nazwać, zmienne? I mam kilka pytań.

echo $$ >> /cgroup/net_cls/users/netout/tasks -

O co chodzi...?

VPSHOST="51.68.138.154";

Domyślam się, że to adres serwera z którym się łączysz.

BACKUPDIR="/home/Serwery/vps115645.ovh.net/"

Miejsce zapisu kopii?

DBUSER="robot";

Użytkownik... To użytkownik bazy MySQL?

DBPASS="E8zAN9XPlmbTXk5gB66dmofdoirlqRmflYPUdGScXymKY18tVIUknbiFqHirZZ4dz";

Hasło tego użytkownika bazy MySQL?
Ja korzystam z SQLite więc chyba nie potrzebuje?


mysqldump --ssl -h $VPSHOST  -u $DBUSER  -p$DBPASS --single-transaction  --all-databases |xz > $BACKUPDIR/mysqldb/all.sql.gz

Ten i kolejne wiersze. Chodzi o kopie bazy danych? Dlaczego nie jest użyte polecenie RSYNC?


rsync -aAXvx --progress -e ssh vps:/usr/local/sbin/ $BACKUPDIR/local/sbin/;

Ten wiersz i pozostałe.... vps:/usr/local/sbin   Scieżka vps:/... do czego się odnosi? Nie widzę, żeby gdzieś była taka zmienna zdefiniowana?

Offline

 

#13  2020-04-09 23:03:43

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: NextCloud - kopia chmury

Kod:

rsync -aAXvx --progress -e ssh vps:/usr/local/sbin/ $BACKUPDIR/local/sbin/;

vps to adres serwera z którego jest pobierany backup, jego Ip jest przypasany do tej nazwy w pliku /etc/hosts.

Kod:

    echo $$ >> /cgroup/net_cls/users/netout/tasks

Domyślnie powłoka bash nie ma w ogóle u mnie wyjazdu na internet, chyba ze PID procesu zostanie dodany do cgroup - grupy netout, wtedy kontroler net_cls pozwoli na wyjazd do netu tego konkretnego procesu.
To taki prosty sposób na filtrowanie ruchu wychodzącego z kompa przez wykorzystanie podsystemu i kontrolerów cgroup.
Kontroler net_cls jest uwzgldęniony w w cgroup v1 ale nie ma go w nowszej wersji cgroup v2.

VPSHOTS to faktynczie zmienna z adresem zdalnego hosta.

rsync pobiera pliki ze zdalnego serwera.
mysqldump robi bezpośrednie zrzuty baz danych z serwera Mysql, obecnie Mariadb zazwyczaj.

w innych zmiennych jest miedzy innymi użytkownik i hasło do baz danych SQL, umożliwiające połączenie ze  zdalenym serwerem MySQL.

To by było na tyle


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2020-04-10 13:56:13

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

1. Mam pytanko. jakie parametry podać po rsync? Chodzi mi, aby utworzyło kopie i przy następnym razie porównało pliki i wysłało na serwer tylko te nowe. Jednocześnie jak usunę jakieś pliki z chmury, to chciałbym, żeby je z kopii wywaliło.
2. Chciałbym żeby tworząc kopie nie logować się na konto root. Utworzyłem w tym celu nowego użytkownika, ale chyba nie mam dostępu:

sending incremental file list
rsync: recv_generator: mkdir "/home/kopia/test/Downloads" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
Downloads/

sent 226 bytes  received 175 bytes  160.40 bytes/sec
total size is 1,314,751  speedup is 3,278.68
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

Jak dodać uprawnienia dla użytkownika zdalnego?

Ostatnio edytowany przez Grabek (2020-04-10 14:58:59)

Offline

 

#15  2020-04-10 17:01:41

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: NextCloud - kopia chmury

Użytkownik systemowy, na którego rsync się loguje po ssh musi mieć rekursywne prawa zapisu  folderu,
do którego chcesz robić backup...

Reasumując, RTFM:

Kod:

man chmod

Kod:

man umask

Przyda się też:

Kod:

man rsync

To by było na tyle

PS:
rsync ma nakładkę graficzną grsync, jest w repo, obsługiwany myszką.
Dzięki opcji symulacji działania można nieźle poznać wszystkie opcje rsynca,

Ostatnio edytowany przez Jacekalex (2020-04-10 17:06:27)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#16  2020-04-10 20:36:03

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Nie jarzę jakoś tego umask... Rozwiązałem to za pomocą

Kod:

chmod 777 /katalog -R

Napisałem taki skrypt. Proszę o ocenę

Kod:

#!/bin/bash
cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode --on

sqlite3 /var/www/nas/nextcloud/data/owncloud.db kopia@**.**.***.*:/home/kopia/raspberry

sudo rsync -aAXvx --delete --exclude=”owncloud.db” -e 'ssh -p ****' /var/www/nas/nextcloud/data kopia@**.**.***.*:/home/kopia/rasberry

cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode --off

Zastanawiam się czy nie dodać jeszcze opcji kompresji? Teraz tylko to do Crona wrzucę i niech uruchamia się co noc.
Pliki się kopiują, ale na początku dostałem taki komunikat

Maintenance mode enabled
Error: near "kopia": syntax error
sending incremental file list

Co to za błąd?
Edit
Jestem już w trakcie kopiowania i widzę, że skopiowało plik owncloud.db Miał być wykluczony. Co zrobiłem źle?

Ostatnio edytowany przez Grabek (2020-04-10 21:00:44)

Offline

 

#17  2020-04-11 01:07:40

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: NextCloud - kopia chmury

w twoim kodzie skryptu jest:

Kod:

--exclude=”owncloud.db”

a powinno być jeśli już:

Kod:

--exclude="owncloud.db"

nie ” tylko "

ewentualnie po prostu:

Kod:

--exclude='owncloud.db'

albo nawet w tym przypadku

Kod:

--exclude=owncloud.db

w jakim programie pisałeś ten skrypt?

drugie cd /var/... jest niepotrzebne.
Bardziej eleganckie jest korzystanie z configów ssh. Wygląda to tak, że tworzysz (lub edytujesz) plik $HOME/.ssh/config (korzystasz z sudo, więc $HOME=/root) i wpisujesz tam taką treść:

Kod:

Host ALIAS_SERWERA
     HostName ADRES_IP_SERWERA
     Port PORT_SSH_SERWERA
     User NAZWA_USERA_SERWERA

potem próba, czy działa - powinno połączyć się z danym serwerem:

Kod:

sudo ssh ALIAS_SERWERA

jeżeli łączy w porządku, to można wtedy korzystać, również w przypadku rsynca z prostszej komendy:

Kod:

sudo rsync -aAXvx --delete --exclude=owncloud.db /var/www/nas/nextcloud/data ALIAS_SERWERA:/home/kopia/rasberry

Co do tego błędu - odpal skrypt komendą:

Kod:

bash -x ./nazwa_skryptu

i wklej wynik.

Ostatnio edytowany przez seler (2020-04-11 01:23:43)


a to feler westchnął seler

Offline

 

#18  2020-04-11 17:38:11

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Co do tego błędu - odpal skrypt komendą:

Kod:
bash -x ./nazwa_skryptu
i wklej wynik

Kod:

cd /var/www/html/nextcloud/
+ sudo -u www-data php occ maintenance:mode --on
Maintenance mode enabled
+ sudo sqlite3 /var/www/nas/nextcloud/data/owncloud.db .dump
./kopia.sh: linia 5: VPS:/home/kopia/raspberry/sqlite3: Nie ma takiego pliku ani katalogu
+ sudo rsync -aAXvx --delete --exclude=owncloud.db --progress -e 'ssh -p *****' /var/www/nas/nextcloud/data VPS:/home/kopia/raspberry/sqlite3
sending incremental file list
data/
data/nextcloud.log
     11,249,258 100%   97.50MB/s    0:00:00 (xfr#1, ir-chk=1016/1021)

sent 1,772,740 bytes  received 32,550 bytes  212,387.06 bytes/sec
total size is 13,741,644,604  speedup is 7,611.88
+ sudo -u www-data php occ maintenance:mode --off
Maintenance mode disabled

Tak jakby bazy sqlite3 nie mógł skopiować. Wcześniej był jeszcze błąd składni. Brakowało .dump > A może to kwestia portu? Zmieniłem port dla ssh. Gdzie go dopisać? Chyba, że tu jakiegoś innego używa i zapora blokuje?

Jak zmienię adres tak jak w opisie na https://docs.nextcloud.com/server/stable/admin_manu … e/backup.html

#!/bin/bash
cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode --on

sudo sqlite3 /var/www/nas/nextcloud/data/owncloud.db .dump > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

#sudo rsync -aAXvx --delete --exclude='owncloud.db' --progress -e 'ssh -p *****'  /var/www/nas/nextcloud/data VPS:/home/kopia/raspberry

sudo -u www-data php occ maintenance:mode --off

to niby bez błędu, ale nie mam kopii

Kod:

+ cd /var/www/html/nextcloud/
+ sudo -u www-data php occ maintenance:mode --on
Maintenance mode enabled
+ sudo sqlite3 /var/www/nas/nextcloud/data/owncloud.db .dump
++ date +%Y%m%d
+ sudo -u www-data php occ maintenance:mode --off
Maintenance mode disabled

Tak jakby w podanej lokalizacji nie mógł zapisać. Ale pozostałe dane się tam zapisują.

Edycja

Nie ma problemu, żeby zrobić kopie na dysku lokalnym. Tak jakby nie łączyło do vpsa.

Ostatnio edytowany przez Grabek (2020-04-11 20:23:58)

Offline

 

#19  2020-04-11 21:17:54

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: NextCloud - kopia chmury

pokaż zawartość /root/.ssh/config
Masz tam wpis VPS?
Jeżeli tak, to spróbuj połączyć się z vps komendą

Kod:

sudo ssh VPS

jeżeli działa to z polecenia rsynca wywal parametr

Kod:

-e 'ssh -p *****'

polecenie sqlite3 /var/www/nas/nextcloud/data/owncloud.db .dump jest chyba niekompletne, nie?


a to feler westchnął seler

Offline

 

#20  2020-04-11 21:22:55

  Grabek - Użytkownik

Grabek
Użytkownik
Zarejestrowany: 2019-06-12

Re: NextCloud - kopia chmury

Powinno być:
var/www/nas/nextcloud/data/owncloud.db .dump > kopia.db
Ale tak się teraz zastanawiam. Bo jak robię lokalnie to mi tworzy kopie. Ale to jest baza sqlite i to jest jeden plik. Przed wywołaniem rsync przechodzę w tryb konserwacji, czyli nic nie jest zapisywane w bazie. Nie można po prosto tego pliku z resztą skopiować?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)