Cron - jak obejść PHP działający w Safe Mode
REKLAMA:
Jeśli chcesz się nauczyć tworzyć strony internetowe, a nie masz o tym
pojęcia wejdź na bezpłatny blog
www.VideoWebmaster.pl
Jeśli już potrafisz tworzyć strony internetowe, wejdź na blog z poradami dla
średnio-zaawansowanych webmasterów
www.PomocnikWebmastera.pl
|
Zanim przeczytasz tą poradę, polecam pobrać ebooka "Co to jest cron"
(150 KB)
W poradzie Jak zrobić backup serwisu opisałem prosty skrypt
pozwalający na zrobienie kopii zapasowej plików na serwerze (spakowanie plików). Mam na
pewnym serwerze skrypt napisany w PHP, który pakuje wszystkie pliki txt (w których mam
zapisane adresy mailowe osób zapisanych do pewnej subskrycji) i wysyła mi je na email.
Niestety ten skrypt nie chodzi na wszystkich serwerach, bo niektóre serwery mają PHP w
trybie safe-mode czyli skrypty pisane w PHP nie mogą uruchamiać zewnętrznych programów
(w moim wypadku był to gzip). I tutaj jest problem, ale ja go obeszłem w dość
śmieszny, ale ciekawy sposób :-) Ponieważ skrypt uruchamiał się raz dziennie, to
postanowiłem utworzyć taki oto plik backup.sh (pliki sh
pod linuxem to odpowiedniki dosowych plików BAT):
#!/bin/bash
rm ~/public_html/backup/w_arch.tar.gz
mysqldump --all -u nazwa_uzytkownika -phaslo nazwa_bazy
>~/public_html/backup/baza_danych.txt
tar -cf ~/public_html/backup/w_arch.tar ~/public_html/backup/*.txt
gzip ~/public_html/backup/w_arch.tar
rm ~/public_html/backup/*.txt
GET http://www.adres mojej strony/backup/backup.php
Ten prosty skrypt zrzuca baze danych do pliku TXT, pakuje plik TXT do pliku
w_arch.tar.gz, usuwa pliki TXT i odpala skrypt w PHP, który wysyła maila z
załącznikiem (komenda GET). Jest to bardzo ciekawe rozwiązanie. Pozostaje jednak drobny
problem: jak odpalić taki skrypt (nie mam dostępu do shella). Odpowiedź jest prosta:
dodać wpis do crona!!! Należy wcześniej plikowi backup.sh nadać
Oto jaki wpis ja dodałem do crona:
/home/jelcyn/public_html/backup/backup.sh >>/dev/null
Dzięki temu raz dziennie o 2 w nocy otrzymuje na maila spakowany zrzut baz danych z
serwera na którym PHP działa w trybie SAFE MODE!!!
Podobne porady:
- Webmasterze, dlaczego warto się uczyć linuxa
- Jak zrobić backup serwisu
- Ebook "Co to jest
cron" (150 KB)
wstecz
|