środa, 23 listopada 2011

Annoying "double" panel Ubuntu11.10

Recently I've upgraded my box from Ubuntu 10.04 to 11.10 and after that I lost my panel settings for dual screen.
Below is step-by-step way of moving a panel to another screen:
  1. Right-click the panel you wish to move and select “Properties”.
  2. Uncheck the “Expand” option under the “General” tab.
  3. Grab one of the edges of the panel by clicking on the left or right end (top or bottom end for vertical panels).
  4. Drag the bar to the desired screen and position.
  5. Check the “Expand” option in the “Panel Properties” window and click “Close”.

piątek, 21 stycznia 2011

FreeBSD - konfiguracja VLAN

Wirtualna sieć lokalna (VLAN) jest wydzieloną logiczną siecią komputerową w ramach innej, większej sieci fizycznej. (ang. Virtual Local Area Network, VLAN) – sieć komputerowa wydzielona logicznie w ramach innej, większej sieci fizycznej.



Oznacza to, że za pomocą tego samego fizycznego połączenia sieciowego, niezależnie od lokalizacji, host może być podpięty do różnych podsieci.

Jak to skonfigurować w praktyce?

Na switchu należy skonfigurować port, do którego podpięty jest host:


SW1 (config)#interface gigabitethernet 0/1
SW1 (config-if)#switchport mode trunk
SW1 (config-if)#switchport trunk encapsulation dot1q
SW1 (config-if)#switchport trunk allowed vlan remove 2-1001
SW1 (config-if)#switchport trunk allowed vlan add 3,4
SW1 (config-if)#end



Po stronie hosta należy wykonać poniższe operacje.

1) Załadować moduł vlan ( jeżeli nie jest wkompilowany).

Można zrobić to na 2 sposoby:
       a) Dodać linijkę do /boot/loader.conf:


if_vlan_load="YES"


       b) Uruchomić z "palca":

kldload /boot/kernel/if_vlan.ko


2) Stworzyć interface vlanowy:

[root@] ~ # ifconfig vlan5 create


3) Przypisać adres ip do interfaceu
ifconfig {vlan-name} {ip-address} netmask {subnet-mask} vlan {vlan-id} vlandev {physical-interface}


[root@] ~ # ifconfig vlan5 172.16.79.137 netmask 255.255.255.0 vlan 5 vlandev em2

Poprawnie utworzony vlan powinien wyświetlić po komendzie ifconfig:

vlan5: flags=8843 metric 0 mtu 1500
    options=3
    ether 08:00:27:b2:30:0a
    inet 172.16.79.137 netmask 0xffffff00 broadcast 172.16.79.255
    media: Ethernet autoselect (1000baseT )
    status: active
    vlan: 5 parent interface: em2


Aby zapisać na stałe konfigurację, w pliku /etc/rc.conf należy dokonać wpisów:

cloned_interfaces="vlan5"
ifconfig_vlan5="inet  172.16.79.137 netmask 255.255.255.0 vlan 5 vlandev em2"

środa, 12 stycznia 2011

MySQL - clear table from data

Sometimes you need to clear your database tables from datas without interference  into tables structure.
Below is some trics how to do this:

- simple dump & restore
mysqldump --add-drop-table --no-data dbname -u root -p -h dbhost > dbnamebackup.sql


mysql -u root -p -h dbhost < dbnamebackup.sql


- clever (root permission)
mysql -u root -p -h dbhost -e 'truncate table table;'



- sophistiocated (root permission )- using procedure
DELIMITER $$
 CREATE PROCEDURE `delete_all_tables`(IN dbname varchar(255))
BEGIN

DECLARE done BOOLEAN DEFAULT 0;
DECLARE cmdtmp VARCHAR(2500);

DECLARE cmd CURSOR
FOR
SELECT CONCAT('TRUNCATE TABLE ',dbname,'.',table_name) FROM information_schema.tables WHERE table_schema = dbname;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;

OPEN cmd;

REPEAT
    FETCH cmd INTO cmdtmp;
    SET @cmdtmp = cmdtmp;
    PREPARE doit FROM @cmdtmp;
    EXECUTE doit;
    DROP PREPARE doit;

UNTIL done END REPEAT;

CLOSE cmd;

END; $$

DELIMITER ;


How to use?
mysql> call mysql.delete_all_tables("databasename");

niedziela, 9 stycznia 2011

NIC bonding i agregacja linków

Co zrobić aby kilka interface'ów stało się jednym wirtualnym i były odporne na błędy?
Odpowiedź jest prosta użyć interfacu lagg.

Poniżej krótki how-to:

Załadować moduł if_lagg

[root@] ~ # kldload /boot/kernel/if_lagg.ko

Stworzyć nowy interface za pomocą ifconfiga

[root@] ~ # ifconfig lagg0 create
[root@] ~ # ifconfig lagg0 up laggproto failover laggport em0 laggport em1
 
W rezultacie otrzymamy :

lagg0: flags=8843 metric 0 mtu 1500
    options=9b
    ether 08:00:27:a8:15:2f
    media: Ethernet autoselect
    status: active
    laggproto failover
    laggport: em1 flags=1c
    laggport: em0 flags=1c



Teraz wystarczy przypisać adres IP:

[root@] shamrock # ifconfig lagg0 172.16.79.132 netmask 255.255.255.0

lagg0: flags=8843 metric 0 mtu 1500
    options=9b
    ether 08:00:27:a8:15:2f
    inet 172.16.79.132 netmask 0xffffff00 broadcast 172.16.79.255
    media: Ethernet autoselect
    status: active
    laggproto failover
    laggport: em1 flags=0<>
    laggport: em0 flags=1
 


Żeby całość zachowała sie po restarcie w konfiguracji /etc/rc.conf należy wpisać:




ifconfig_em0="up"
ifconfig_em1="up"

cloned_interfaces="lagg0"

ifconfig_lagg0="laggproto failover laggport em0 laggport em1"

ipv4_addrs_lagg0="172.16.79.132/32"

defaultrouter="172.16.79.2"

Natomiast w /boot/loader.conf musi się znaleźć :


if_lagg_load="YES"

poniedziałek, 3 stycznia 2011

Montowanie partycji za pomocą UUID

Czasami zdarza się tak, że po upgradzie Linuxa ( w tym przypadku Debiana) zmienia się określenie dysku np.: zamiast /dev/sda jest /dev/sdb

Można temu zaradzić montując partycje za pomocą UUID (Universally Unique Identifier).

Jak to zrobić ?

1) Sprawdzić jakie partycje mamy zamontowane:

test:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
#              
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/sda9       /home           ext3    defaults        0       2
/dev/sda8       /tmp            ext3    defaults        0       2
/dev/sda5       /usr            ext3    defaults        0       2
/dev/sda6       /var            ext3    defaults        0       2
/dev/sda7       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

2) Wyświetlić atrybuty partycji znajdujących się w /etc/fstab

test:~# cat fstab | grep -v ^# | awk '{ system("blkid "$1)}'
/dev/sda1: UUID="d4cd3659-5e22-41c1-a440-db4012289974" TYPE="ext3"
/dev/sda9: UUID="96f1f6ba-d486-437d-ace3-b3bc90ff7593" TYPE="ext3"
/dev/sda8: UUID="2a3bc90d-1e59-4535-a722-0e1239a896e1" TYPE="ext3"
/dev/sda5: UUID="43e19d71-b2df-4d85-a2b2-8e24400b6f7f" TYPE="ext3"
/dev/sda6: UUID="5d615c76-22f8-4710-b530-0f16f164cce9" TYPE="ext3" 

3) Zamienic wpisy w /etc/fstab tak aby korzystać z UUID

test:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
#              
proc            /proc           proc    defaults        0       0
UUID=d4cd3659-5e22-41c1-a440-db4012289974       /               ext3    errors=remount-ro 0       1
UUID=96f1f6ba-d486-437d-ace3-b3bc90ff7593       /home           ext3    defaults        0       2
UUID=2a3bc90d-1e59-4535-a722-0e1239a896e1       /tmp            ext3    defaults        0       2
UUID=43e19d71-b2df-4d85-a2b2-8e24400b6f7f       /usr            ext3    defaults        0       2
UUID=5d615c76-22f8-4710-b530-0f16f164cce9       /var            ext3    defaults        0       2
/dev/sda7       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

4) Na koniec jeszcze tylko zmiana w menu.lst dla gruba


title        Debian GNU/Linux, kernel 2.6.26-2-amd64
root        (hd0,0)
kernel        /boot/vmlinuz-2.6.26-2-amd64 root=UUID=d4cd3659-5e22-41c1-a440-db4012289974 ro quiet
initrd        /boot/initrd.img-2.6.26-2-amd64

title        Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
root        (hd0,0)
kernel        /boot/vmlinuz-2.6.26-2-amd64 root=UUID=d4cd3659-5e22-41c1-a440-db4012289974 ro single
initrd        /boot/initrd.img-2.6.26-2-amd64

poniedziałek, 13 grudnia 2010

Debian i sterowniki bnx

[ Komendy wykonać z poziomu root ]

1) Sciagnac ISO debiana i rozpakowac


root@alucard:/tmp# mkdir -p /tmp/Instalki/ISO
root@alucard:/tmp# cd Instalki
root@alucard:/tmpInstalki# bsdtar -C ISO -xf debian-507-amd64-netinst.iso ISO

2) Sciagnac sterownik do Broadcoma


3) Rozpakowac sterownik do broadcoma

dpkg-deb -X firmware-bnx2_0.27_all.deb .

4) Skopiowac initrd.gz z ISO

root@alucard:/tmp/Instalki# cp ISO/install.amd/initrd.gz .
root@alucard:/tmp/Instalki# mv initrd.gz  initrd-old.gz
root@alucard:/tmp/Instalki# mkdir initrd-new
root@alucard:/tmp/Instalki# gunzip initrd-old.gz
root@alucard:/tmp/Instalki# cd initrd-new/
root@alucard:/tmp/Instalki/initrd-new# cp ../initrd-old .
root@alucard:/tmp/Instalki/initrd-new# cpio -id < ../initrd-old
root@alucard:/tmp/Instalki/initrd-new# cp -r ../lib .
root@alucard:/tmp/Instalki/initrd-new# find . | cpio --create --format='newc' > ../initrd
root@alucard:/tmp/Instalki/initrd-new# cd ../
root@alucard:/tmp/Instalki# gzip initrd

4) Skopiowac powstaly initrd.gz do ISO

root@alucard:/tmp/Instalki# chmod u+w ISO/install.amd/
root@alucard:/tmp/Instalki# cp initrd.gz ISO/install.amd/
root@alucard:/tmp/Instalki# chmod u-w ISO/install.amd/

6) Stworzyc nowe iso

root@alucard:/tmp/Instalki# genisoimage -o \
debian-507-amd64-netinst_BNX.iso \
-r -J -no-emul-boot \
-boot-load-size 4  \
-boot-info-table  \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat ./ISO 2> /dev/null

8) Usunąć zbędne katalogi /tmp/Instalki ...po uprzednim skopiowaniu nowego iso ;)


Skrypt

sobota, 2 października 2010

tcpdump

Ostatnio musialem sprawdzic jak sobie radzi aplikacja z baza danych.
Bardzo  przydatny okazal sie tcpdump, ktory ladnie pokazal cala komunikacje z baza.

> tcpdump -i bce1 -s 0 -l -w - dst port 3306 and host a.b.c.d | strings