strony www, sklepy internetowe, oprogramowanie

Archiwum kategorii ‘Serwer FreeBSD’

nginx i http_push_module = problem przy metodzie make

Sobota, wrzesień 3rd, 2011

Jeżeli próbujesz wykonać make nginx’a wraz z http_push_module w celu wykorzystania do Comet i trafiłeś na problem typu:

../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_clean_timeouted_subscriber’:
../nginx_http_push_module/src/ngx_http_push_module.c:22: error: unused variable ‘chain’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_handle_subscriber_concurrency’:
../nginx_http_push_module/src/ngx_http_push_module.c:554: error: unused variable ‘rc’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_clean_timeouted_subscriber’:
../nginx_http_push_module/src/ngx_http_push_module.c:22: error: unused variable ‘chain’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_handle_subscriber_concurrency’:
../nginx_http_push_module/src/ngx_http_push_module.c:554: error: unused variable ‘rc’
Rozwiązaniem jest zakomentowanie linii 22 i 554 we wskazanym pliku ngx_http_push_module.c poprzez dodanie na ich początku znaku // .
Rozwiązanie choć niejasne – jest skuteczne.

FreeBSD – problem z systemem plików systemu przy logowaniu

Czwartek, sierpień 18th, 2011

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.

Automatyczny backup plików i bazy danych

Niedziela, kwiecień 17th, 2011

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:

  1. utworzenie katalogu tymczasowego w którego nazwie będzie dzisiejsza data
  2. utworzenie wewnątrz katalogu tymczasowego katalogu na pliki i oddzielnego na dump bazy danych
  3. utworzenie backupu bazy danych i zapisanie w naszej lokalizacji
  4. utworzenie backupu plików w naszej lokalizacji
  5. usunięcie ewentualnych plików SVN
  6. spakowanie wszystkiego do formatu tar.gz
  7. wysłanie informacji o utworzeniu kopii na naszego maila
  8. czyszczenie plików tymczasowych
  9. zakończenie skryptu

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