ERROR 1005 (HY000) at line 32: Can’t create table ‚./tabl/tabl_entry.frm’ (errno: 150)

Przy próbie odtworzenia bazy mysql z dumpa pojawia się taki błąd:
ERROR 1005 (HY000) at line 32: Can't create table './tabl/tabl_entry.frm' (errno: 150)
Tabela zawiera klucz do innej tabeli, która jeszcze nie istnieje:
CONSTRAINT `tabl_entry_FK_1` FOREIGN KEY (`author_id`) REFERENCES `tabl_user` (`id`),
Aby mysql nie sprawdzał tego należy na początku dumpa dodać:
SET FOREIGN_KEY_CHECKS = 0;

Jak podzielić mysqldump -all na poszczególne bazy?

Komendą mysqldump z parametrem –all-databases można zrobić zrzut wszystkich baz na serwerze do jednego pliku. Powstaje zazwyczaj wielki plik, który ciężko przeglądać. Jak wyciągnąć z niego poszczególne bazy? Używając komendy csplit można zrobić to tak:

csplit –f "baza_" mysqlbackup0101.sql "/^CREATE DATABASE /" {*}

po wykonaniu takej komendy powstanie osobny plik baza_XX dla każdej bazy z pliku źródłowego.

ubiquiti dodatkowy statyczny routing

Nie da się przez  panel www dodać dodatkowych wpisów do tablicy routingu w AirOS (ubiquiti).

Można natomiast (logując się przez telnet lub ssh), dodać wpis do pliku startowego:

vi /etc/persistent/rc.poststart

Np. taki wpis:

route add -net 10.2.3.0 netmask 255.255.255.0 gw 10.2.1.2

Po dodaniu należy wydać komendę:

cfgmtd -w -p /etc/

w celu zapisania pliku w pamięci nieulotnej (flash).

Konfiguracja locale

Co zrobić jeśli pojawiają się komunikaty tego typu?

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory

Może to oznaczać brak pakietu locales, trzeba go wtedy zainstalować:

apt-get install locales

Trzeba skonfigurować locales:

dpkg-reconfigure locales

oraz wybrać np. pl_PL.UTF-8

Instalacja systemu Debian Lenny jako gość dla Xen

dd if=/dev/zero of=nazwa-disk.img bs=1 count=0 seek=10G
dd if=/dev/zero of=nazwa-swap.img bs=1 count=0 seek=100M
mkfs.ext3 nazwa-disk.img  (trzeba odpowiedzieć Y)
mkswap nazwa-swap.img
mount -o loop disk.img /xen/mnt/nazwa
debootstrap lenny /xen/mnt/nazwa ftp://ftp.icm.edu.pl/pub/Linux/dist/debian
umount /xen/mnt/nazwa

Należy utworzyć plik konfiguracyjny dla gościa, np.:

kernel = ‚/boot/vmlinuz-2.6.26-2-xen-686’
ramdisk = ‚/boot/initrd.img-2.6.26-2-xen-686’
memory = ‚512’
extra = ‚console=hvc0 xencons=tty’
disk=[‚file:/xen/zab-disk.img,sda2,w’]
name=’nazwa”
boot=’d’
vnc=0
vncviewer=0
sdl=1
on_poweroff = ‚destroy’
on_reboot   = ‚restart’
on_crash    = ‚restart’
root = „/dev/sda2 ro”
vif  = [ ” ]

Teraz wystartować guesta:

xm create -c xm-nazwa.cfg

opuszczenie konsoli przez CTRL-]

Aby ponownie podłączyć konsolę:

xm console nazwa

Zatrzymanie gościa:

xm shutdown nazwa

Lista gości:

xm list

Jeśli gość nie uruchamia się do końca
(staje na Starting periodic command scheduler: crond.), należy do /etc/inittab dodać linię:
h1:2345:respawn:/sbin/getty 38400 hvc0

Dla Ubuntu wywołanie debootstrap:
debootstrap –arch=amd64 trusty /mnt http://archive.ubuntu.com/ubuntu/

Problem z ssh pod xen guest

Po zainstalowaniu systemu guesta przez debootstrap, instalacji sshd, [przy próbie połączenia przez ssh do guesta pojawia się:
root@xxxxx's password:
PTY allocation request failed on channel 0
stdin: is not a tty

Nie ma zainstalowanego pakietu udev, pomaga:

apt-get install udev

oraz dodanie do /etc/fstab

none            /dev/pts      devpts    defaults        0   0

(nie jest to już wymagane).

IBM Remote Supervisor Adapter zapomniane hasło

W przypadku utraty hasła do karty zarządzającej w serwerach IBM (np. x345) należy pobrać ze strony ibm.com dwa obrazy dyskietek:

ibm_fw_rsa_geet24a-1_dos_i386.img

ibm_fw_rsa_geet24a-2_dos_i386.img

Należy wystartować system z pierwszej z nich, uruchomi się PC DOS wraz z programem do upgrade flash, należy wybrać menu:

Hardware Flash Option

oraz z niego opcję:

Erase NVRAM Option

oraz dla bezpieczeństwa wgrać na nowo: Boot Rom, Main Application oraz Remote Graphics App.

Wykonanie takiej operacji całkowicie kasuje wszystkie ustawienia oraz ustawiastandardowe dane do logowania,  login: USERID password: PASSW0RD (zero zamiast litery ‚o’).

VMware ESXi – obsługa VLANów 802.1q przez VM

Pod VMware VM może mieć maksymalnie 4 interfejsy ethernetowe. Do niektórych zastosowań jest to za mało. Zazwyczaj do tego celu można zastosować VLANy 802.1q, ale VMware standardowo nie przepuszcza VLANów do systemu gościa. Aby na interfejsie systemu gościa VM były widoczne wszystkie VLANy danego interfejsu należy stworzyć podsieć i ustawić jej VLAN 4095. Takie ustawienie powoduje, że na VM można uruchomić sterownik 802.1q i standardowo mieć dostęp do VLANów z poziomu systemu gościa.

vconfig add eth0 10
Added VLAN with VID == 10 to IF -:eth0:-

ifconfig eth0.10
eth0.10   Link encap:Ethernet  HWaddr 00:0c:29:64:c4:6e
BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Co można zrobić przez ssh z VMware ESXi 3.5

Można włączyć/wyłączyć wirtuala. Najpierw sprawdzić jakie identyfikatory mają instancje, po zalogowaniu przez ssh wydać polecenie:

vim-cmd vmsvc/getallvms

to pokaże:

Vmid   Name             File                Guest OS       Version   Annotation
16     RO5    [datastore1] RO5/RO5.vmx   otherLinuxGuest   vmx-04

Teraz chcąc włączyć wywołujemy:

vim-cmd vmsvc/power.on 16

a wyłączyć:

vim-cmd vmsvc/power.off 16

Można skopiować wirtualny serwer, a potem dodać go przez:

vim-cmd solo/registervm /vmfs/volumes/......MY_VM.vmx

Openvpn wolna transmisja – pomaga zwiększenie bufora

Zestawiłem tunel pomiędzy punktami oddalonymi o kilkanaście milisekund, mimo że pomiędzy nimi transfer wynosi kilkadziesiąt Mbps, to w tunelu transfer dochodzi do 4Mbps i nie chce przesyłać więcej.

Okazuje się, że wypełnia się całkowicie bufor podczas wysyłania i zanim kolejna porcja danych zostanie wysłana openvpn oczekuje na potwiedzenie. Aby zwiększyć przepustowość tunelu należy zwiększyć wielkość bufora. Odpowiedzialne za to są następujące parametry:

openvpn –sndbuf 655360 -rcvbuf 655360

(standardowo bufor ma 65536 bajtów, wielkość należy odbrać doświadczalnie, u mnie zwiększenie dziesięciokrotne pomogło).

W debianie argument wywołania można dodać w pliku  /etc/default/openvpn dodając na końcu:

OPTARGS=”–sndbuf 655360 –rcvbuf 655360″