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
Admindoc:IEEE 802.1Q 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)
Admindoc:LACP
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
Vodafone mobilinternet
AT+CGDCONT=1,"IP","standardnet.vodafone.net"
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
Debian csomagkezelés
Debian repository készítése
Az egyetlen szükséges csomag a reprepro. Készítsük el a szükséges könyvtárakat:
mkdir -p /var/debrepo/{conf,db,www} cd /var/debrepo
Hozzuk létre a conf/distributions állományt:
Origin: BMEMath Label: BMEMath Suite: oldstable Codename: etch Version: 4.0 Architectures: i386 amd64 alpha Components: main non-free UDebComponents: Description: Packages from BME Institute of Mathematics #Update: security woody swoody #SignWith: yes Origin: BMEMath Label: BMEMath Suite: stable Codename: lenny Version: 5.0 Architectures: i386 amd64 alpha Components: main contrib non-free UDebComponents: Description: Packages from BME Institute of Mathematics #Update: security woody swoody #SignWith: yes Origin: BMEMath Label: BMEMath Suite: sid Codename: sid Version: 6.0 Architectures: i386 amd64 alpha Components: main contrib non-free UDebComponents: Description: Packages from BME Institute of Mathematics #Update: security woody swoody #SignWith: yes
És most kezdjük el bepakolni a csomagjainkat a repositoryba:
reprepro -Vb ./www --confdir ./conf --dbdir ./db includedeb etch ./maple9-convex_1.1.2-2_i386.deb
CPAN csomagból Debian csomag
Ha olyan Perl csomagot szeretnénk használni, ami nincs benne a Debian disztribúcióból, és nem szeretnénk elbukni a csomagkezelő által nyújtott előnyöket, akkor kénytelenek vagyunk a CPAN-on található forrásból debian csomagot készítenünk. Példaképpen készítsük el a PDF::Reuse::Barcode csomagot. Két csomagra lesz szükségünk hozzá:
apt-get install devscripts dh-make-perl
Töltsök le és tömörítsük ki a forrást:
cd /usr/src wget "http://search.cpan.org/CPAN/authors/id/L/LA/LARSLUND/PDF-Reuse-Barcode-0.05.tar.gz" tar -pzxvf PDF-Reuse-Barcode-0.05.tar.gz
Debianizáljuk a forrást:
dh-make-perl PDF-Reuse-Barcode-0.05/
Látjuk, hogy panaszkodik, mert olyan perl csomagokra van szüksége, amik nem elérhetőek debian csomagban. Készítsük el ezeket is:
wget "http://search.cpan.org/CPAN/authors/id/L/LA/LARSLUND/PDF-Reuse-0.33.tar.gz" tar -pzxvf PDF-Reuse-0.33.tar.gz dh-make-perl PDF-Reuse-0.33 cd PDF-Reuse-0.33 debuild cd .. wget "http://search.cpan.org/CPAN/authors/id/W/WR/WRW/Barcode-Code128-2.01.tar.gz" tar -pzxvf Barcode-Code128-2.01.tar.gz dh-make-perl Barcode-Code128-2.01 cd Barcode-Code128-2.01 debuild cd ..
Pakoljuk fel a két szükséges csomagot:
dpkg -i libbarcode-code128-perl_2.01-1_all.deb dpkg -i libpdf-reuse-perl_0.33-1_all.deb
Mivel az apt-file parancs továbbra sem fogja tudni, hogy melyik csomagba kerültek a PDF::Reuse és a Barcode::Code128 fájljai, ezért kézzel addjuk meg a függőségi listát:
vim PDF-Reuse-Barcode-0.05/debian/control Depends: ${perl:Depends}, ${misc:Depends}, libgd-barcode-perl, libbarcode-code128-perl, libpdf-reuse-perl
Telepítsük fel a helyesen felismert függőséget, a libgd-barcode-perl csomagot:
apt-get install libgd-barcode-perl
Ezek után végre elkészíthetjük a csomagunkat:
cd PDF-Reuse-Barcode-0.05 debuild cd ..
És már fel is telepíthetjük:
dpkg -i libpdf-reuse-barcode-perl_0.05-1_all.deb
Debian csomag készítése
- Készítsük el a szükséges könyvtárrendszert:
mkdir /usr/src/mathematica/debian/DEBIAN
- Másoljuk be a telepítendő fájlokat a debian könyvtárba
- A debian könyvtárban állva készítsük el az md5sums állományt:
find usr -type f -exec md5sum "{}" \; > DEBIAN/md5sums
- Írjuk meg a DEBIAN/control fájlt:
Package: mathematica Version: 7.0.1-1 Section: non-free/math Priority: optional Architecture: i386 Installed-Size: 1702106 Maintainer: Gergi Miklos <mgergi@math.bme.hu> Description: Wolfram's Mathematica - The Way the World Calculates From simple calculator operations to large-scale programming and interactive-document preparation, Mathematica is the tool of choice at the frontiers of scientific research, in engineering analysis and modeling, in technical education from high school to graduate school, and wherever quantitative methods are used. . <You can find more information about Mathematica at http://www.wolfram.com/products/mathematica/>
- Ellenőrizzük, hogy minden könyvtár 0755 jogosultságú legyen:
find -type d -exec ls -ld "{}" \; | awk '$1!="drwxr-xr-x"'
- Készítsük el a csomagot:
dpkg-deb --build debian
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. A végső megoldás:
:set tw=75 1GgqG
Mathematica HomeUse License telepítés
Az otthoni gépeken használható Mathematica program telepítését 3 lépés előzi meg:
- Igényeljünk egy license-et:
- A http://www.wolfram.com/siteinfo/homeuse/ címen lehet új license-et igényelni.
- Meg kell adnunk a site-license számát: L4596-7899
- Jelöljük be, hogy új home-use license-et szeretnénk igényelni.
- A folytatásra kattintva megadhatjuk, hogy hogyan akarunk hozzájutni a telepítőhöz, illetve azt, hogy milyen operációs rendszeren szeretnénk használni.
- Ismét a folytatásra kattintva töltsük ki a kérdőívet a személyes adatainkkal, majd küldjük el a "Submit" gombbal a Wolframnak.
- Meg kell adnunk a site-license számát: L4596-7899
- Pár percen belül kapunk egy kedves levelet a Wolframtól, amiben közlik, hogy az igényünket továbbították a Site Administrator számára, majd ő eldönti, hogy megkapjuk-e a kívánt license-et.
- Még ha a site-admin azonnal reagál is az igényre, akkor is beletelik kb. egy napba (nekem 22 óra volt), amíg megkapjuk következő levelünket a Wolframtól, amiben tájékoztat, hogy megkaptuk az új licence-et.
- A http://www.wolfram.com/siteinfo/homeuse/ címen lehet új license-et igényelni.
- Regisztráljuk magunkat a Wolfram User Portal oldalon:
- Látogassuk meg a http://user.wolfram.com címet
- Kattintsunk a "Create account" gombra.
- Fontos, hogy ugyanazt az email címet addjuk meg, mint amivel a license-et igényeltük!
- Pár percen belül jön a következő levél, amiben kapunk egy linket. Erre a linkre kattintsunk rá, ezzel lesz teljes a regisztrációnk.
- A program regisztrálása:
- Ha megkaptuk végre az aktivácis kódot, látogassunk el ismét a http://user.wolfram.com oldalra
- Jelentkezzünk be az előbbiekben létrehozott felhasználónév-jelszó párossal
- Válasszuk a "My Products and Services" menüpontot
- Kattintsunk az "Add Product" gombra
- Itt az aktivációs kulcsot kéri az oldal, amit a Wolframtól kapott levelünkben találunk meg.
Ha ezzel is megvagyunk, akkor elkezdhetjük telepíteni a programot. A telepítés során legyen élő internet-kapcsolata a gépnek, különben az aktiválási porcedúra tovább nehezedik. A telepítés végén a gép az aktivációs kulcsot fogja kérni tőlünk.
Bittorrent parancssorból
Ha sokat torrentezünk, hasznos lehet, ha a nagy grafikus programok helyett egyszerű, a háttérben is futtatható parancssori eszközökkel is képesek vagyunk vezérelni a letöltést. A bittorrent remek eszköz, de ha a torrentnek csak egy részére van szükségünk, már nem is olyan egyszerű a dolgunk. A probléma megoldásához a bittornado csomagra van szükségünk.
Vegyük a torrentben található file-ok listáját:
btshowmetainfo xx.torrent | grep "^ "
Csináljunk egy awk mintát, ami csak a keresett fájlokra illeszkedik:
btshowmetainfo xx.torrent | awk '$1~/^Ezkell.*$/'
Ha a mintánk jó, akkor indulhat a letöltés:
btshowmetainfo xx.torrent | grep "^ " | awk '{printf "%d,",$1~/^Ezkell.*$/?2:-1}'|sed 's/,$//' |\ xargs btdownloadcurses xx.torrent --minport yyyy --maxport zzzz --max_upload_rate qqq --priority