Bind9: named "max open files (1024) is smaller than max sockets (4096)"

Po upgrade Debiana z Etch do Lenny bind9 w logach możemy zobaczyć komunikat: „max open files (1024) is smaller than max sockets (4096)”.
Na google szukałem chwilę, ale znalazłem.
Teraz też pomogło:

Kod:
ulimit -HSn 8192
# /etc/init.d/bind9 restart

no i w logach mamy:

Kod:
using up to 4096 sockets

Misja wykonana!

Podczas poszukiwań znalazłem rozwiązanie podczas uruchomienia systemu: dla użytkowników – http://ss64.com/bash/limits.conf.html
a dla administratora w pliku .bash_profile: http://ss64.com/bash/ulimit.html
Za powyższymi linkami:

Kod:
# cat /etc/security/limits.conf
[...]
* soft nofile 8192
* hard nofile 8192
@root soft nofile 8192
@root hard nofile 8192
@bind soft nofile 8192
@bind hard nofile 8192

i działa podczas startu.

Eksport i import bazy danych mysql

Eksport bazy danych:

Kod:
mysqldump -B testowa -u root -p > dump_testowa.sql

– system poprosi o hasło
– potrzebne są odpowiednie uprawnienia, ale root powinien je mieć

Źródło: kody.wig.pl

Wersja spakowana do .sql.gz:

Kod:
mysqldump -B testowa -u root -p | gzip > dump_testowa.sql.gz

I tak mamy pełny instruktaż dot. importu (zrzutu, dumpu) bazy danych.

Import bazy danych:

Kod:
mysql -u root -p < dump_testowa.sql

Zmiana uprawnień katalogów i plików – hurtowo

Chciałem zmienić prawa do katalogów i plików jednocześnie tak aby katalog miał inne prawa niż plik w nim znajdujący się. Zwykłe chmod XXX * -R nie było tym czego potrzebowałem. Z pomocą przyszły dwa polecenia, find oraz xargs.

Kod:
find . -type f -print0 | xargs -0 chmod XXX find . -type d -print0 | xargs -0 chmod XXX

odpowiednio:
z parametrem type f – pliki (file)
z parametrem type d – katalogi (dir)

poskutkowało i działa :-)

Aby uprawnienia podane działały wgłęb podanej ścieżki należy ustawić poziomy zagłębień do katalogów: mindepth i maxdepth.
W przykładzie minimalny poziom 1, maksymalny poziom 100 (100 katalogów wgłęb):

Kod:
find . -mindepth 1 -maxdepth 100 -type f -print0 | xargs -0 chmod XXX find . -mindepth 1 -maxdepth 100 -type d -print0 | xargs -0 chmod XXX

i działa :-)

Apache Bug 2.2.11

W razie jakbyśmy zobaczyli w logach serwera Apache:

[notice] child pid 22527 exit signal Segmentation fault (11)

Jest to błąd lub też niekompatybilność serwera Apache z nowym jądrem/kernelem. Należy wydać komendę:

echo 1024 > /proc/sys/fs/epoll/max_user_instances

Gdzie:

  • 1024 jest liczbą większą od parametru MaxClients w Apache.

…i problem znika.

Zmiana nazwy maszyny w linuxie

W poradniku http://pomoc.ovh.pl/ZmianaNazwyMaszyny jest opisane jak zmieniać nazwę maszyny dla RedHata. Jak to w Linux Debianie się ma? Wystarczy:

hostname [maszyna]
[vi] /etc/hostname: [maszyna]
[vi] /etc/hosts: [ip maszyny] [maszyna]
[vi] /etc/mail/local-host-names: dopisać [maszyna]
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf_
[vi] /etc/mail/sendmail.mc: MASQUERADE_AS(`........

zmienić na:

MASQUERADE_AS(`[maszyna]`)dnl

na koniec wystarczy:

/etc/init.d/networking restart
/etc/init.d/sendmail restart

Wytłumaczenie:

  • zamiast [vi] można użyć innego edytora tekstu np. standardowego w Midnight Commander – komenda mcedit,
  • za [maszyna] podstawić swoją nazwę kanoniczną (nazwę hosta),
  • za [ip maszyny] podstawić fizyczne ip dla danego serwera.

i działa.

apache2 + php4/php5 + mysql5

Najprościej jest zainstalować przez jedną komendę – ale nie zawsze tak moża, bo pakietów brakuje. Poniżej przedstawiam wersję skróconą:

apt-get install apache2 mysql-server-5.0 php4-*

Lecz niestety brakuje tu czasem pakietów php4. Poniżej przedstawiam wersję wydłużoną:

apt-get install apache2 mysql-server-5.0
apt-get install php4-sqlite php4-curl php4-uuid php4-kadm5 php4-interbase php4-mhash php4-pgsql php4 php4-xslt php4-imap php4-domxml php4-gd php4-pspell php4-ldap php4-tclink php4-ps php4-mcal php4-mysql php4-json php4-mcrypt php4-recode php4-imagick php4-ming php4-sqlite3 php4-odbc php4-apd php4-cgi php4-pear php4-cli php4-dev php4-gd2 php4-gd php4-suhosin php4-idn php4-auth-pam php4-lasso php4-common php4-librdf php4-memcache php4-mapscript php4-sybase libapache-mod-php4 php4-snmp php4-xapian libapache2-mod-php4 php4-clamavlib php4-syck php4-spplus

php5? Nie ma problemu:

apt-get install apache2 mysql-server-5.0
apt-get install memcached php5 libapache2-mod-php5 php5-adodb php5-common php5-curl php5-dev php5-gd php5-imagick php5-imap php5-intl php5-ldap php5-mcrypt php5-memcache php5-mysql php5-pgsql php5-pspell php5-snmp php5-sqlite php5-xmlrpc php5-xsl php5-exactimage php5-ffmpeg php5-gdcm php5-vtkgdcm php5-lasso php5-mapscript php5-ming php5-geoip php5-memcached php5-ps php5-radius php5-rrd php5-sasl php5-svn php5-tokyo-tyrant php5-dbg php5-enchant php5-fpm php5-gmp php5-interbase php5-odbc php5-recode php5-sybase php5-tidy php5-librdf php5-remctl php5-xcache php5-xdebug

I działa!

sshd: info po podaniu loginu

Za konfigurację sshd odpowiedzialny jest plik /etc/sshd_config. A więc robimy tak:

mcedit /etc/sshd_config

dopisujemy poniższą linijkę:

Banner /etc/ssh/sshd_banner

tworzymy plik o podanej nazwie:

touch /etc/ssh/sshd_banner

z porządaną treścią zakończoną klawiszem ENTER (_nową pustą linią na końcu całego pliku_), później wystarczy:

/etc/init.d/sshd restart

zalogować się ponownie i po podaniu loginu, przed wpisaniem hasła, widzimy zawartość pliku /etc/ssh/sshd_banner.