X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml_tips;h=21ff86c6e1d2436cabc884ebde564a81178caabd;hb=0f7d60b21a1cd14b32a84069fa942ad64ab40e8a;hp=ef3c8a4ac73981ba446051c55a264bb4609dbb22;hpb=c98dd02da6f01d1a72284d3171546d25d0a60e37;p=grml-tips.git diff --git a/grml_tips b/grml_tips index ef3c8a4..21ff86c 100644 --- a/grml_tips +++ b/grml_tips @@ -413,13 +413,17 @@ Test sound: Improved grep version: % glark +-- +Grep with highlighting: -glark grep extract-matches +% grep --color=auto ... +% hgrep ... -- -Highlith +Extract matches when grepping: -grepc -hgrep +Usage examples: +% ifconfig | grepc 'inet addr:(.*?)\s' +% ifconfig | glark --extract-matches 'inet addr:(.*?)\s' -- Output text as sound: @@ -573,9 +577,9 @@ vim -c "se ff=dos|x" file # ... and even shorter ;) recode ibmpc..lat1 file # convert using recode echo -e "s/\r//g" > dos2unix.sed; sed -f dos2unix.sed < dosfile > unixfile -- -Save live stream to file: +Save live audio stream to file: -% mplayer -ao pcm -aofile $FILE +% mplayer -ao pcm:file=$FILE or @@ -855,6 +859,14 @@ local host: remote host: % netcat 192.168.0.1 3333 -- +Reverse Shell via SSH: + +local host (inside the network): +% ssh -NR 1234:localhost:22 remote_host + +remote host (outside the network): +% ssh localhost -p 1234 +-- Remove empty directories with zsh: % rmdir ./**/*(/od) 2> /dev/null @@ -989,6 +1001,7 @@ cp /etc/network/interfaces /mnt/test/etc/network/ # ...from the running grml sys umount /mnt/test && reboot # unmount partition and reboot... See also: http://www.debian.org/releases/stable/i386/apcs04.html.en +Avoid all of the above steps - use grml-debootstrap(8) instead! -- Install (plain) Debian (etch release) via grml @@ -1027,10 +1040,10 @@ passwd # set password of user root mkdir /boot/grub # setup grub cp /usr/share/doc/grub/examples/menu.lst /boot/grub cat >> /boot/grub/menu.lst << EOF -title Debian Etch, kernel 2.6.17-2-686 (on /dev/sda1) +title Debian Etch, kernel 2.6.18-3-686 (on /dev/sda1) root (hd0,0) -kernel /boot/vmlinuz-2.6.17-2-686 root=/dev/sda1 ro -initrd /boot/initrd.img-2.6.17-2-686 +kernel /boot/vmlinuz-2.6.18-3-686 root=/dev/sda1 ro +initrd /boot/initrd.img-2.6.18-3-686 EOF vim /boot/grub/menu.lst # adjust grub configuration to your needs cd /dev && MAKEDEV generic # create default devices @@ -1065,14 +1078,15 @@ timeout=1 map=/boot/map vga=normal -image=/boot/vmlinuz-2.6.17-grml - label="2.6.17-grml" +image=/boot/vmlinuz-2.6.18-grml + label="2.6.18-grml" #append="...." read-only - initrd=/boot/initrd.img-2.6.17-grml + initrd=/boot/initrd.img-2.6.18-grml EOF See also: http://www.debian.org/releases/stable/i386/apcs04.html.en +Avoid all of the above steps - use grml-debootstrap(8) instead! -- Convert files from Unicode / UTF to ISO: @@ -1164,7 +1178,17 @@ Check self signed certificate: Estable OpenSSL-connection using self-signed-certificate.pem and display certificate: # openssl s_client -showcerts -CAfile self-signed-certificate.pem -connect www.example.com:443 -Also take a look at make-ssl-cert (debconf wrapper for openssl) +Generate ssl-certificate for use with apache2: + +export RANDFILE=/dev/random +mkdir /etc/apache2/ssl/ +openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem +chmod 600 /etc/apache2/ssl/apache.pem + +Also take a look at make-ssl-cert (debconf wrapper for openssl): + +# /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/apache.pem + and mod-ssl-makecert (utility to create SSL certificates in /etc/apache/ssl.*/). -- Change Windows NT password(s): @@ -1632,9 +1656,10 @@ grant all on grml.* to enrico identified by "PASSWORD"; -- Setup an HTTPS website: -create a certificate: +Create a certificate: -/usr/sbin/apache2-ssl-certificate -days 365 +# mkdir /etc/apache2/ssl +# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem Create a virtual host on port 443: @@ -1650,6 +1675,10 @@ SSLCertificateFile /etc/apache2/ssl/apache.pem Enable listening on the HTTPS port (/etc/apache2/ports.conf): Listen 443 + +and make sure the SSL module is used: + +# a2enmod ssl -- Useful Apache / Apache2 stuff @@ -1686,7 +1715,7 @@ GET http://www.google.com HTTP/1.0 [press enter twice] Adjust system for use of qemu with kqemu: Make sure you have all you need: -# apt-get update ; apt-get install qemu grml-kerneladdons +# apt-get update ; apt-get install qemu grml-kerneladdons-$KERNELVERSION Then set up kqemu: @@ -1709,7 +1738,7 @@ dstat # versatile tool for generating system resource statistics Usage examples: -# mptstat -P ALL +# mpstat -P ALL # iostat -x 1 # iostat -xtc 5 3 # vmstat 1 @@ -2020,7 +2049,7 @@ How to use APT locally Sometimes you have lots of packages .deb that you would like to use APT to install so that the dependencies would be automatically solved. Solution: -mkdir ~debs +mkdir debs dpkg-scanpackages debs /dev/null | gzip > debs/Packages.gz echo " deb file:/root debs/" >> /etc/apt/sources.list dpkg-scansources debs | gzip > debs/Sources.gz @@ -2235,6 +2264,12 @@ Download binary codecs for mplayer: # /usr/share/mplayer/scripts/win32codecs.sh +or + +# /usr/share/mplayer/scripts/binary_codecs.sh install + +(depending on the mplayer version you have). + To play encrypted DVDs and if you are living in a country where using libdvdcss code is not illegal can install Debian package libdvdread3 and use the script /usr/share/doc/libdvdread3/install-css.sh. @@ -2251,4 +2286,238 @@ Server: Client: # netperf -t TCP_STREAM -H 192.168.0.41 -- +Setup Xen within 20 minutes on Debian/grml + +Install relevant software und update grub's menu.lst (Xen does not work with +usual lilo so install grub instead if not done already): + +apt-get install linux-image-2.6.18-1-xen-686 xen-hypervisor-3.0.3-1-i386 \ + xen-utils-3.0.3-1 xen-tools bridge-utils +update-grub + +Example for installation of Debian etch as DomU: + +mkdir /mnt/md1/xen +xen-create-image --debootstrap --dir=/mnt/md1/xen --size=2Gb --memory=512Mb --fs=ext3 \ + --cache=yes --dist=etch --hostname=xengrml1 --ip 192.168.1.2 --netmask 255.255.255.0 \ + --gateway 192.168.1.1 --initrd=/boot/initrd.img-2.6.18-1-xen-686 \ + --kernel=/boot/vmlinuz-2.6.18-1-xen-686 --mirror=http://ftp.at.debian.org/debian/ + +Start services: + +/etc/init.d/xend start +/etc/init.d/xendomains start + +Setup a bridge for network, either manually: + +brctl addbr xenintbr +brctl stp xenintbr off +brctl sethello xenintbr 0 +brctl setfd xenintbr 0 +ifconfig xenintbr 192.168.1.1 netmask 255.255.255.0 up + +or via /etc/network/interfaces (run ifup xenintbr to bring up the device then +without rebooting): + +auto xenintbr +iface xenintbr inet static + pre-up brctl addbr xenintbr + post-down brctl delbr xenintbr + address 192.168.1.1 + netmask 255.255.255.0 + bridge_fd 0 + bridge_hello 0 + bridge_stp off + +Setup forwarding (adjust $PUBLIC_IP; for permanet setup use /etc/sysctl.conf and +add the iptables commands to a startup script like /etc/init.d/rc.local): + +echo 1 > /proc/sys/net/ipv4/ip_forward +iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to $PUBLIC_IP +iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $PUBLIC_IP + +Adjust network configuration of Xend: + +cat >> /etc/xen/xend-config.sxp << EOF +(network-script network-route) +(vif-bridge xenintbr) +(vif-script vif-bridge) +EOF + +List domains, start up a DomU, shutdown later again: + +xm create -c /etc/xen/xengrml1.cfg +xm list +xm shutdown 1 + +This HowTo is also available online at http://grml.org/xen/ +-- +Play tetris with zsh: + +autoload -U tetris +zle -N tetris +bindkey "^Xt" tetris + +Now press 'ctrl-x t'. +-- +Set up a router with grml + +Run grml-router script: +# grml-router + +Install dnsmasq if not already present: +# apt-get update ; apt-get install dnsmasq + +Adjust /etc/dnsmasq.conf according to your needs: +# cat >> /etc/dnsmasq.conf << EOF +domain-needed +bogus-priv +dhcp-range=19.168.0.124,192.168.0.254,1m # dhcp range +dhcp-option=3,192.168.0.1 # dns server +dhcp-option=1,255.255.255.0 # netmask +EOF + +Start dnsmasq finally: +# Restart dnsmasq +-- +Find out which process(es) cause the disk to spin up: + +# echo 1 > /proc/sys/vm/block_dump + +The command sets a sysctl to cause the kernel to log all disk +writes. Please notice that there is a lot of data. + +See: $KERNEL-SOURCE/Documentation/laptop-mode.txt + +Also take a look at event-viewer(8). +-- +Display stats about memory allocations performed by a program: + +Usage example for 'ls': + +% LD_PRELOAD=/lib/libmemusage.so ls > /dev/null +-- +Use KVM (Kernel-based Virtual Machine for Linux): + +Make sure to install the relevant tools: +# apt-get update ; apt-get install kvm +# modprobe kvm + +Test it with a minimal system like ttylinux: +# wget http://www.minimalinux.org/ttylinux/packages/bootcd-i386-5.3.iso.gz +# gzip -d bootcd-i386-5.3.iso.gz +# kvm -cdrom bootcd-i386-5.3.iso +-- +EEPROM data decoding for SDRAM DIMM modules: + +# modprobe eeprom +# /usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl +-- +Set up and use DVB: + +Make sure your device is supported by Linux and running. +See http://www.linuxtv.org/ for more details. + +If the DVB device works on your system (see 'hwinfo --usb' +when using a DVB usb device for example), then make sure you +have the scan util from dvb-utils available: + +# aptitude install dvb-utils + +Then create a channels.conf configuration file: + +% scan /usr/share/doc/dvb-utils/examples/scan/... > ~/.mplayer/channels.conf + +You can find some example configuration files on +your grml system in ~/.channels. Usage example: + +% ln -s ~/.mplayer/channels.conf-AT-graz ~/.mplayer/channels.conf + +Tip: w_scan (see http://free.pages.at/wirbel4vdr/w_scan/index2.html) +might be useful if you do not know the initial configuration +details. +-- +Get the lastest mercurial snapshot: + +Make sure you have the python-dev package available: +# apt-get update ; apt-get install python-dev + +Get and build the source: +% hg clone http://selenic.com/repo/hg mercurial +% cd mercurial +% make local +% export PYTHONPATH=$(pwd) +% export PATH=$PATH:$(pwd) +now you should have the newest version of mercurial whenever you execute hg. + +To update to the lastest development snapshot, additionally use +the following commands: +% hg pull -u http://hg.intevation.org/mercurial/crew +% make local +-- +Configure timezone +================== + +Available bootoptions relevant in live-cd mode: +----------------------------------------------- + +* utc: set UTC, if your system clock is set to UTC (GMT) +* gmt: set UTC, if your system clock is set to UTC (GMT) [like bootoption utc] +* tz=$option: set timezone to corresponding $option, usage example: + tz=Europe/Vienna + +Configuration options relevant on harddisk installation: +-------------------------------------------------------- + +* Use the tzconfig utility to set the local timezone: + + # tzconfig + + which adjusts /etc/timezone and /etc/localtime according + to the provided information. + +* /etc/default/rcS: set variable UTC according to your needs, + whether your system clock is set to UTC (UTC='yes') or + not (UTC='no') + +* /etc/localtime: adjust zoneinfo according to your needs: + + # ln -sf /usr/share/zoneinfo/$WHATEVER_YOU_WANT /etc/localtime + + The zoneinfo directory contains the time zone files that were + compiled by zic. The files contain information such as rules + about DST. They allow the kernel to convert UTC UNIX time into + appropriate local dates and times. Use the zdump utility to + print current time and date (in the specified time zone). + +* /etc/adjtime: This file is used e.g. by the adjtimex function, + which can smoothly adjust system time while the system runs + +* If you change the time (using 'date --set ...', ntpdate,...) + it is worth setting also the hardware clock to the correct time: + + # hwclock --hctosys [--utc] + + Remember to add the --utc -option if the hardware clock is set + to UTC! + +Still problems? +--------------- + +Check your current settings via: + + cat /etc/timezone + zdump /etc/localtime + echo $TZ + hwclock --show + grep hwclock /etc/runlevel.conf + grep '^UTC' /etc/default/rc + +Further information: +-------------------- + + hwclock(8) tzselect(1) tzconfig(8) + http://www.debian.org/doc/manuals/system-administrator/ch-sysadmin-time.html + http://wiki.debian.org/TimeZoneChanges +--