nginx i http_push_module = problem przy metodzie make
Sobota, wrzesień 3rd, 2011Jeżeli próbujesz wykonać make nginx’a wraz z http_push_module w celu wykorzystania do Comet i trafiłeś na problem typu:
Jeżeli próbujesz wykonać make nginx’a wraz z http_push_module w celu wykorzystania do Comet i trafiłeś na problem typu:
Dzisiaj po problemach z prądem przywitała nas niemiła niespodzianka. Serwer jednego z naszych klientów nie podniósł się – jak się okazało wystąpił jakiś problem z ciągłością danych na dyskach i system nie był w stanie się uruchomić.
W takiej sytuacji rozpoczęliśmy oczywiście od poszukiwania rozwiązania w google i znaleźliśmy.
Tak więc jeżeli i Ciebie powita komunikat podobny do:
Starting file system checks : ... Automatic file system check failed; help! Oct. 30 20:14:53 init: /bin/sh on /etc/rc terminated abnormally, going to single user mode
Uruchom po prostu polecenie: fsck -y
Zaczekaj aż fsck naprawi ewentualne błędy a następnie wykonaj reboot.
Jeżeli ktoś z Was dysponuje dedykowanym serwerem i chciałby cyklicznie wykonywać backup plików i bazy danych bądź chciałby zabezpieczać dane ze swojego komputera – rozwiązaniem może być skrypt uruchamiany poprzez Cron’a. Rozwiązanie to jest skuteczne w przypadku systemów Linux. Nasz przykład będzie opierał się o system FreeBSD.
W pierwszej kolejności opiszmy schemat działania. W kolejnych krokach wygląda to w sposób następujący:
Na podstawie tego schematu możemy utworzyć niezbędny kod.
#!/bin/sh
# utworzenie zmiennej wykorzystanej do budowania ścieżki
BACKUP_DIR=backup_"`/bin/data +%d_%m_%Y`"
# utworzenie katalogu tymczasowego z datą
/bin/mkdir /usr/home/uzytkownik/$BACKUP_DIR
# utworzenie katalogu na pliki wewnątrz katalogu tymczasowego
/bin/mkdir /usr/home/uzytkownik/$BACKUP_DIR/www
# utworzenie backupu bazy danych
/usr/local/bin/mysqldump -u user -phaslo nazwa_bazy > /usr/home/uzytkownik/$BACKUP_DIR/dump.sql
# backup plików
/bin/cp -rf /sciezka/katalog_z_plikami/* /usr/home/uzytkownik/$BACKUP_DIR/www/
# usuniecie plików SVN jeżeli takie istnieją
/bin/rm -rf `/usr/bin/find /usr/home/uzytkownik/$BACKUP_DIR/www/ -type d -name .svn`
# spakowanie wszystkiego do pliku tar.gz
/usr/bin/tar -zcvf /usr/home/uzytkownik/$BACKUP_DIR.tar.gz /usr/home/uzytkownik/$BACKUP_DIR/*
# utworzenie tresci maila o stworzeniu backupu
/usr/bin/touch /usr/home/uzytkownik/$BACKUP_DIR/mail.txt && /bin/echo "NASZA TREŚĆ WIADOMOŚCI">/usr/home/uzytkownik/$BACKUP_DIR/mail.txt
# wysyłka wiadomości
/usr/bin/mail -s "tytul wiadomosci" "adresat@domena.pl" # usuniecie katalogu tymczasowego
/bin/rm -rf /usr/home/uzytkownik/$BACKUP_DIR
# zakończenie skryptu
exit
Skrypt tez zapisujemy pod dowolną nazwą a następnie przyznajemy mu prawa wykonywania 0777 i możemy już uruchamiać.
Należy zwrócić uwagę na ścieżki poleceń i plików – muszą one być ścieżkami bezwzględnymi. Mogą one również różnić się od tu podanych, które obowiązują w FreeBSD.
Jeżeli chcemy, możemy również plik ten uruchamiać poprzez crona np komendą:
1 1 * * * root cd /usr/home/uzytkownik && ./nasz_plik.sh