A rendszergazda trükkjei
Ezen az oldalon a régi "TRUKKOK.TXT" állományban összeírt kisebb-nagyobb megoldásokat próbálom a kor szellemének megfelelő formára hozni. Ne várjon itt senki teljes értékű dokumentációt. Minden ami itt van, az csupán emlékeztető saját magam számára.
Managable switchek adminisztrálása
3com switch adminisztrálása
Linksys switchek adminisztrálása
Boot CD készítése
mkdir -p iso/boot/grub cp /usr/lib/grub/i386-pc/stage2_eltorito iso/boot/grub # vim iso/boot/grub/menu.lst mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -o super.iso iso
Bootfloppy felrakása bootCD-re
A syslinux csomagban található memdisk kernel segítségére van szükségünk:
title Win 98 bootfloppy kernel (cd)/boot/memdisk initrd (cd)/images/win98_indito.img
2.88-as floppy-image készítése 1.44-es floppyról
Ha univerzális bootCD-t szeretnénk készíteni, szükség lehet rá, hogy a kétlemezes alkalmazásokból egy nagy, 2.88 MB-os floppy-image-et készítsünk.
dd if=/dev/zero of=disk.img bs=1024 count=2880 mformat -i disk.img -f 2880 -B /dev/fd0 :: mcopy -i disk.img a:*.* ::
Hálózati trükkök
Hálózat párhuzamos porton (PLIP)
Szerver oldalon:
modprobe plip plipconfig plip0 trigger 10000 ifconfig plip0 192.168.0.1 dstaddr 192.168.0.2 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
Kliens oldalon:
modprobe plip plipconfig plip0 trigger 10000 ifconfig plip0 192.168.0.2 dstaddr 192.168.0.1 route add default gw 192.168.0.1 vim /etc/resolv.conf
Hálózat soros porton (SLIP)
Szerver oldalon:
modprobe slip slattach -s 19200 /dev/ttyS0 & ifconfig sl0 192.168.0.1 dstaddr 192.168.0.2 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
Kliens oldalon:
modprobe slip slattach -s 19200 /dev/ttyS0 & ifconfig sl0 192.168.0.2 dstaddr 192.168.0.1 route add default gw 192.168.0.1 vim /etc/resolv.conf
Hálózat USB porton
Szerver oldalon:
modprobe usbnet modprobe plusb ifconfig usb0 192.168.0.1 dstaddr 192.168.0.2 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
Kliens oldalon:
modprobe usbnet modprobe plusb ifconfig usb0 192.168.0.2 dstaddr 192.168.0.1 route add default gw 192.168.0.1 vim /etc/resolv.conf
Interaktivitás ADSL modem mögött
Nagy letöltések, rendszerfrissítések közben tapasztalható, hogy az internet használata nagyon lassúvá válik. Szeretnénk, ha egy-egy honlap letöltése nem várakozna hosszan a letöltések miatt:
DLHOST=0/0 tc qdisc add dev eth1 ingress tc filter add dev eth1 parent ffff: \ protocol ip prio 50 u32 match ip src $DLHOST \ police rate 400kbit burst 400kbit drop flowid :1
NAT-olás T-Online ADSL modem mögött
Az ADSL modem MTU értéke kisebb, mint az ethernet kapcsolaté. Ezt a modemmel kapcsolatot tartó gép tudja, és lekezeli, de a NAT mögött ülő gépek nem tudnak róla, ezért mindenféle "misztikus" hálózati hiba lép fel. A megoldás:
iptables -t mangle -o ${DSL_DEV} --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN \ -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
IPv6 kikapcsolása default kernel esetében
ex -s -c '%s/net-10-pf ipv6/net-10-pf off ipv6/|wq' /etc/modprobe.d/aliases
Ethernet deivce-ok névadása
Ha sok hálókártya van, és azokat még cserélgeti is az ember, akkor nem árt fixálni, hogy melyik kártyát milyen néven érjük el.
cat >> /etc/udev/rules.d/10_netinterfaces.rules <<END KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:55", NAME="eth0" KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:66", NAME="eth1" END
Lehetőség van saját nevek használatára is, így még egyértelműbbé tehetőek az ethernet device-ok:
KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:55", NAME="lan" KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:66", NAME="dmz" KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:77", NAME="upc"
Több VLAN egyetlen fizikai interface-en
Tegyük fel a vlan csomagot, majd addjuk hozzá az alábbi sorokat az /etc/network/interface-hez
# DHCP az 500-as VLAN-ban iface eth0.500 inet dhcp # Statikus IP az 503-as VLAN-ban iface eth0.503 inet static address 192.168.0.101 netmask 255.255.255.0 # Második statikus IP az 503-as VLAN-ban iface eth0.503:1 inet static address 192.168.0.102 netmask 255.255.255.0
Link Aggregation (bonding)
Ha két darab 100 megabites hálókártyánkat egy 200 megabitesre cserélnénk, a Linuxnak arra is van megoldása.
Állítsuk be a bonding paramétereit az /etc/modprobe.d/options fájlban:
options bonding mode=4 miimon=100
Majd az interfaces fájlban definiáljuk a bonding eszközt:
iface bond0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 slaves eth0 eth1
Gyorsan egyszerűen otthoni hálózatot
Legyen az eth0 a külső hálókártyánk, az eth1 pedig a belső hálózathoz tartozó. Első lépésként oldjuk meg a NATolást
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.23.0/24 -j MASQUERADE
Ezután már csak a DNS és DHCP szolgáltatást kell megoldanunk. Erre a legjobb a dnsmasq csomagot használni. A konfiguráció mindössze két sorból áll:
interface=eth1 dhcp-range=192.168.23.10,192.168.23.100,255.255.255.0,12h
Inkrementális backup rsync használatával
- a backup-serveren be kell kapcsolni az rsyncd-t. Ehhez tedd fel az rsync csomagot, és a /etc/defaults/rsync-ben kapcsold be, hogy daemonként fusson.
- a csatolt példa alpján csináld meg a backup-szerveren a /etc/rsyncd.conf-ot
- a backup szerveren az /etc/rsyncd.secrets -ben username:password formában (egy sor, egy user) csináld meg az rsync usereit. Ez független a linux usereidtől.
- /etc/init.d/rsync restart
- a kliensekre másold fel a backup.sh-t, és rakd be a cron-ba, hogy indítsa.
- a backup szerveren szintén érdemes valami cron scriptet csinálni a régi backupok törlésére.
A sok hardlink miatt elég nehéz megmondani, hogy egy adott napi backup törlésével mennyi hely szabadul fel a winyón. Megoldás:
du -csh $(ls | grep -v 2006-12-25) 2006-12-25| grep 2006-12-15
Ez megadja, hogy mennyi hely szabadul fel, ha a december 25.-i backupot törlöm.
Könyv nyomtatása
psbook eredeti.ps 1.ps mpage -2 -o 1.ps > 2.ps lpr -o sides=two-sided-short-edge 2.ps
Háttértárolók
Software RAID kezelése
mdadm --grow --raid-devices=2 /dev/md0 mdadm /dev/md0 --add /dev/sdb2
Partimage használata
partimage -b -d -o -z2 -f3 /dev/hda1 /backup/hda1_image
Egyebek
Vékonykliens-rendszerek készítése
ltsp-build-client --base /usr/src/ltsp --dist etch --mirror http://ftp.hu.debian.org/debian/ --extra-mirror http://ftp.debian.org/debian/ etch --security-mirror http://security.debian.org etch/updates --arch i386
CPIO archivum létrehozása
cd xxx find | cpio -o -H newc > ../xxx.cpio
bináris fájlból hexadump készítése és visszaállítás
od -tx1 -An -w25 xxx.bin | sed 's/^ //' > xxx.hex cat xxx.hex | tr ' ' $'\n' | while read i; do eval echo -e -n \\\\x$i; done > xxx.bin
Sorok törése adott karakterszám után (vim)
Első próba:
:%s/\(.\{,75\}\) /\1\r/g
Ezzel az a gond, hogy a 30 karakteres sorokat is töri az utolsó szóköznél. A második ötlet:
%s/.\{75}/\=strpart(submatch(0),0,match(submatch(0)," [^ ]*$"))."\<CR>".strpart(submatch(0),match(submatch(0)," [^ ]*$")+1)/
Ennek a gondja az, hogy sokszor ki kell adni.