Automatyczny backup danych na Google Drive

User avatar
makrz
Posts: 401
Joined: Tue Nov 27, 2018 1:43 pm
Location: Opole

Post

Witam.
Pomoże ktoś?
Z góry serdecznie dziękuję.
viewtopic.php?p=120728#p120728
User avatar
makrz
Posts: 401
Joined: Tue Nov 27, 2018 1:43 pm
Location: Opole

Post

makrz wrote: Sun Mar 27, 2022 6:39 pm Witam.
Pomoże ktoś?
Z góry serdecznie dziękuję.
viewtopic.php?p=120728#p120728
Nikt nic? :(
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Tak samo jak zwykły backup. Podmontuj sobie tylko dysk Google.

https://medium.com/@enthu.cutlet/how-to ... f4bff24288
SUPLA.... Nareszcie w domu.
User avatar
makrz
Posts: 401
Joined: Tue Nov 27, 2018 1:43 pm
Location: Opole

Post

pzygmunt wrote: Sun Apr 03, 2022 8:41 pm Tak samo jak zwykły backup. Podmontuj sobie tylko dysk Google.

https://medium.com/@enthu.cutlet/how-to ... f4bff24288
Dziękuję za odpowiedź, ale ja nie o to pytam. Chodzi mi o konkretny skrypt kolegi @fracz.
Skrypt robi backup po czym kopiuje go na dysk google i usuwa go z lokalnej maszyny.
Powinien też usuwać z dysku google backupy starsze niż X dni, a tego nie robi (backupy robię od 2 tygodni co 6 h a zdefiniowanie mam do usunięcia starsze niż 2 dni).
Moje pytanie, dlaczego nie są usuwane z dysku google pliki starsze niż zdefiniowane 2 dni?
backup.sh

Code: Select all

NOW=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE=supla-$NOW.sql
GDRIVE_DIR=1jD89Scumo6YUzySl-xClNvTrwP9ZYUFj
SUPLA_PATH=/home/pi/supla-docker
BACKUP_EXPIRATION_DAYS=2

cd "$(dirname "$0")"

source $SUPLA_PATH/.env && \
docker exec supla-db mysqldump -u root --password="$DB_PASSWORD" supla > $BACKUP_FILE && \
gzip $BACKUP_FILE && \
gdrive upload $BACKUP_FILE.gz --parent $GDRIVE_DIR --delete

sleep 5

OLD_BACKUPS=$(date -u -d "${BACKUP_EXPIRATION_DAYS} days ago" +"%Y-%m-%dT%H:%M:%SZ")

OBSOLETE_BACKUPS=$(gdrive list -m 1000 --query \
"(('${GDRIVE_DIR}' in parents) and trashed=false and modifiedTime < '$OLD_BACKUPS'" \
--order  "modifiedTime asc" --no-header | cut -d ' ' -f1)

while read -r OBSOLETE_BACKUP_ID; do
  if [ ! -z "$OBSOLETE_BACKUP_ID" ]; then
    echo Deleting $OBSOLETE_BACKUP_ID
    gdrive delete $OBSOLETE_BACKUP_ID
  fi
done <<< "$OBSOLETE_BACKUPS"
backup.log

Code: Select all

mysqldump: [Warning] Using a password on the command line interface can be insecure.
Uploading supla-20220404060001.sql.gz
^M                                                  ^M512.0 B/4.2 MB^M                                                  ^M4.2 MB/4.2 MB^M                                                  ^MUploaded 1VAVNLv3U95amUdvJ8yEOuIKebbEswiQ8 >
Removed supla-20220404060001.sql.gz
Deleting Failed
Failed to get file: googleapi: Error 404: File not found: Failed., notFound
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Musisz sobie dodać printa na gdrive delete $OBSOLETE_BACKUP_ID i zobaczyć jak wygląda polecenie.

Sprawdź też dokumentację tego polecenia.
SUPLA.... Nareszcie w domu.
User avatar
makrz
Posts: 401
Joined: Tue Nov 27, 2018 1:43 pm
Location: Opole

Post

pzygmunt wrote: Mon Apr 04, 2022 9:26 am Musisz sobie dodać printa na gdrive delete $OBSOLETE_BACKUP_ID i zobaczyć jak wygląda polecenie.

Sprawdź też dokumentację tego polecenia.
No tak, wszystko byłoby fajnie gdybym ja rozumiał co Ty do mnie mówisz. Niestety moja wiedza o linuxach jest żadna.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Dodaj nad delete $OBSOLETE_BACKUP_ID

Code: Select all

echo "delete $OBSOLETE_BACKUP_ID"
i będziesz widział jak wygląda całe polecenie z podstawionym parametrem. Może tam coś nie tak leci pod do id.
SUPLA.... Nareszcie w domu.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

makrz wrote: Mon Apr 04, 2022 10:09 am
pzygmunt wrote: Mon Apr 04, 2022 9:26 am Musisz sobie dodać printa na gdrive delete $OBSOLETE_BACKUP_ID i zobaczyć jak wygląda polecenie.

Sprawdź też dokumentację tego polecenia.
No tak, wszystko byłoby fajnie gdybym ja rozumiał co Ty do mnie mówisz. Niestety moja wiedza o linuxach jest żadna.
http://www.cs.put.poznan.pl/anstroinski ... -kurs.html :P

Odpal sobie terminal na linuxie i przerób jakieś 2-3 tutoriale z sieci. Nie musisz bawić się we wszystkie polecenia (szczególnie w pętle i inne tego typu instrukcje), ale podstawy w stylu "jak wyświetlić coś na ekranie" warto znać :P
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
makrz
Posts: 401
Joined: Tue Nov 27, 2018 1:43 pm
Location: Opole

Post

pzygmunt wrote: Mon Apr 04, 2022 10:12 am Dodaj nad delete $OBSOLETE_BACKUP_ID

Code: Select all

echo "delete $OBSOLETE_BACKUP_ID"
i będziesz widział jak wygląda całe polecenie z podstawionym parametrem. Może tam coś nie tak leci pod do id.
nic więcej się nie wyświetliło, to chyba nie dla mnie

Code: Select all

pi@supla:~$ ./backup.sh
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Uploading supla-20220404130945.sql.gz
Uploaded 1ewiH_kvQ2arywtou7kLAkNPlRiC6vSes at 2.9 MB/s, total 4.2 MB
Removed supla-20220404130945.sql.gz
delete Failed
Failed to get file: googleapi: Error 404: File not found: Failed., notFound
pi@supla:~$
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Wyświetliło się, że jedyny plik jaki próbuje usunąć nazywa się "Failed" :)
Wygląda, jakby poprzednia komenda się niepowiodła i nie pobrały się żadne nazwy plików do usunięcia i stąd dlasza część nie działa.

Przed linią "while read" dodaj

Code: Select all

echo "old backups: $OLD_BACKUPS"
echo "obsolete backups: $OBSOLETE_BACKUPS"
i pokaż co wyrzuca na ekran
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”