Nie pamiętam hasła

» Wyszukiwarka

» Kategorie

» Multiprofile

» Kategoria: Internet i Komputery / Tricki i Porady

Głosuj na tak 2 Głosuj na nie
pobierz

Cron - jak obejść PHP działający w Safe Mode

Jelcyn 09.07.2007, czytano 6,188 razy, pobrano kod HTML 4 razy, komentarzy 1.

Na wielu serwerach PHP działa w trybie safe-mode więc nie można używać funkcji system. Ma to swoje wady np. gdy chcesz zrobić backup serwisu i potrzebujesz do tego odpalić zewnętrzny program zip. Jeśli masz dostęp do crona, to możesz w pewnym sensie obejść to ograniczenie.

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ć atrybuty 777

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!!!

Artykuł pochodzi ze strony www.jelcyn.com na której znajdziesz darmowe programy i ciekawe porady

Podobał Ci się ten artykuł? Oceń na TAK lub NIE.    Głosuj na tak   2   Głosuj na nie



Liczba komentarzy: 1

avatar
Kamil Michalak sobota, 30 styczeń 2010 - 16:54

Bardzo rozsądny wybór tematu. Trzeba uczyć dobrych nawyków.


(nie będzie publikowany)

Artykuł został przedrukowany na następujących stronach:

http://neonek.net    http://www.p-p-i.ovh.org    http://www.portalinformatyczny.pl    http://pogotowiepc.wroclaw.pl/