Baza danych mysql

Kawunaa177 | 2019-06-06 17:33:44 UTC | #1

Witam mam takie pytanie czy da się zrobić coś takiego ze automatycznie np co godzinę będzie się robił zapis/rzut bazy danych w danej lokalizacji np /home/zapisy/ na vpsie
każdy oddzielnie ? :)
Posiadam serwer pod grę i chciałbym zabezpieczyć się przed dziwnymi zmianami mojej bazy danych przez niektóre exploity/cheaty do gier


Glupikocz | 2019-06-06 17:39:46 UTC | #2

Na pewno się jakoś da ale pewnie nie za darmo


bopke | 2019-06-06 22:35:59 UTC | #3

oczywiście, że się da

kopia: mysqldump -u <login> -p<hasło> <nazwa bazy> > plik.sql
odzyskiwanie: mysql -u <login> -p<hasło> <nazwa_bazy> < plik.sql

np

mysqldump -u bopke -pMojeHaslo baza_danych > zrzut.sql

Jeżeli chcesz, żeby miały date w nazwie, to utwórz skrypt

#!/bin/bash
mysqldump -u bopke -pMojeHaslo baza_danych > /home/zapisy/zrzut`date '+%Y-%m-%d_%H:%M'`.sql

Kawunaa177 | 2019-06-06 22:26:57 UTC | #4

Dziękuje :)
a to robi rzut co godzinę ?


Timo | 2019-06-06 22:35:56 UTC | #5

Jeśli chcesz, aby robiło co godzinę, stwórz podany skrypt i dodaj do crontaba poniższą linijkę, za pomocą komendy crontab -e

0 * * * * /path/do/skryptu.sh >/dev/null 2>&1

Tibijski | 2019-06-07 15:29:08 UTC | #7

Albo ja nie potrafię tego zrobić albo coś tu jest nie tak, utworzyłem ten skrypt, dodałem do crontaba ale zadziałał tylko raz jak go wywołałem, a tak to nie ma żadnej reakcji - nie tworzy tych kopii co 1h. Pomógłby ktoś? :smiley:


Timo | 2019-06-07 15:30:38 UTC | #8

Napiszesz w jaki sposób dodałeś?
Zrób też screena z terminalu po wpisaniu crontab -e


Tibijski | 2019-06-07 16:12:54 UTC | #9

No to tak, utworzyłem sobie ścieżkę. Utworzyłem .sh. Nadałem mu permisje itd. Tu jest mój crontab.
edit
Właśnie po dodaniu tego zobaczyłem jedną niezgodność - czy brak .sh może być przyczyną tego?


Timo | 2019-06-07 16:13:17 UTC | #10

W zadaniu cron jedynie wskazujesz ścieżkę, musisz zmienić /home/zapisy na /home/zapisy/zapisy.sh, aby wykonał się skrypt.


Tibijski | 2019-06-07 16:13:52 UTC | #11

A no to czyli tak, jak napisałem wyżej. Dzięki wielkie :D


Tibijski | 2019-06-12 15:32:21 UTC | #12

Nie czaję kompletnie, wcześniej działało - po reinstalacji systemu przestało działać, nie czaję czemu.
Crontab
Sh


KMatuszak | 2019-06-12 15:44:37 UTC | #13

Nadałeś odpowiednie uprawnienia na skrypt?


Tibijski | 2019-06-12 15:58:27 UTC | #14

Wszystkie możliwe XD


Tibijski | 2019-06-14 13:15:57 UTC | #15

Up
Zna ktoś jakiś inny sposób na auto backupy?


kotyk | 2019-06-14 14:29:04 UTC | #16

Ogólnie skrypt jest w /home/zapisy ?


FairGames | 2019-06-14 15:19:07 UTC | #17

Robisz skrypt bash z mysqldump, ustawiasz chmod, ustawiasz crontab co X czasu. Gotowe :wink:


Tibijski | 2019-06-14 16:31:51 UTC | #18

Tak


Tibijski | 2019-06-14 16:32:16 UTC | #19

Problem w tym, że tak właśnie zrobiłem, a to nie chce działać. Wcześniej działało, po reinstalacji systemu nie.


FairGames | 2019-06-14 17:26:48 UTC | #20

Plik bash
#!/bin/bash
mysqldump --host localhost --user użytkownik -p"haslo" nazwabazy > /lokalizacja/plik.sql
Crontab
0 * * * * /lokalizacja/skrypt.sh > /dev/null


KMatuszak | 2019-06-14 20:03:09 UTC | #21

Czy skrypt ma odpowiednie kodowanie znaku końca linii? Jak odpalasz skrypt ręcznie to działa?


Tibijski | 2019-06-14 21:49:51 UTC | #22

tak


system | 2019-07-16 22:03:45 UTC | #23

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.