A rendszergazda trükkjei

A MathWikiből
A lap korábbi változatát látod, amilyen WikiMiki (vitalap | szerkesztései) 2013. október 11., 13:17-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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.

Tartalomjegyzék

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

  1. 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.
  2. a csatolt példa alpján csináld meg a backup-szerveren a /etc/rsyncd.conf-ot
  3. 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.
  4. /etc/init.d/rsync restart
  5. a kliensekre másold fel a backup.sh-t, és rakd be a cron-ba, hogy indítsa.
  6. 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:

  1. 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.
    • 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.
  2. 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.
  3. 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
Személyes eszközök