Scripte zum Linuxen :)
MD5 Sums über Partitionen ziehen
#!/bin/bash datum=`date +%d.%m.%y_%H.%M` find /mnt/hda2 -type f -print0 > md5dateien.lst cat < md5dateien.lst | xargs -0 md5sum > $datum.md5dateien.md5 rm md5dateien.lst wc *.md5
Swapverhalten einstellen
echo -n "10" > /proc/sys/vm/swappiness
vim Einstellungen speichern
.vimrc im Homeverzeichnis erstellen oder die /etc/vim/vimrc editieren
Inhalt:
autocmd! syntax on set nowrap
Abmeldedialog mit Zenity
einfach als exit.sh abspeichern und mit Gnome-Starter aufrufen ( die Sudoer Einträge nicht vergessen!) Inhalt:
ARG=`zenity --list --radiolist --text "Aktion wählen" --title "Was möchten sie tun?" --column "Aktiv" --column "Name" TRUE "Logout" FALSE "Reboot" FALSE "Shutdown" if test "$ARG" = "Logout"; then #echo "Logge aus" gnome-session-save --kill --gui elif test "$ARG" = "Reboot"; then #echo "Reboote" sudo reboot elif test "$ARG" = "Shutdown"; then #echo "Schalte aus" sudo shutdown -h now else echo "" fi exit 0
Festplattenpartition über SSH sichern
Image auf einen Server schieben und mit gzip komprimieren dd if=/dev/hda4 bs=512 | gzip -9 | ssh user@host "cat > /mnt/backup/imagedatei_part4.gz" Image zurücksichern (noch nicht getestet) ssh user@host "gzip -d -c imagedatei_part4.gz" | dd of=/dev/hda4 besser: ======= (Sven) - unzippen auf Zielrechner 1. ssh Login 2. cat Dateistream ausgeben 3. gunzip Dateistream unzippen 4. dd Dateistream in 8192 Blöcken auf die Festplatte (Partition 4) schreiben ssh user@host "cat imagedatei_part4.gz" | gunzip | dd of=/dev/hda4 bs=8192
MBR über DD sichern / wiederherstellen
MBR in Datei sichern // bs= Anzahl der Bytes -> MBR = 512 Bytes + Partitiontable // count = Anzahl Eingabeblöcke kopieren dd if=/dev/hda of=/root/mbrbackup/mbrbackup.mbr bs=512 count=1 MBR aus Datei zurückschreiben dd if=/root/mbrbackup/mbrbackup.mbr of=/dev/hda bs=512 count=1 Reboot oder fdisk w nicht vergessen ^^ d.h. Partitiontable neu einlesen
Auffinden von Dubletten innerhalb eines Dateibaums
# findet alle Dateien ab dem aktuellen Verzeichnis, die höchstwahrscheinlich # mehrfach identisch vorkommen; mit find wird die Liste aller Dateien # erstellt; durch die korrespondierenden Optionen -print0 von # find und -0 von xargs werden auch File-Namen mit Leer- # und Sonderzeichen korrekt behandelt; für alle ermittelten Dateien wird die # 32 Zeichen lange externe Repräsentation der MD5-Summe errechnet; die Liste # wird nach dieser Summe sortiert; mittels uniq -D werden alle # Einträge der Liste ausgegeben, die mehrfach vorkommen; durch die Option # -w 32 betrachtet uniq nur die ersten 32 Zeichen jeder Zeile, # also die MD5-Summe und nicht den dahinter folgenden Dateinamen find . -type f -print0 | xargs -0 md5sum | sort | uniq -D -w 32
Erstellen von VPN Zertifikaten für den Server
#!/bin/bash mkdir certs cd certs echo "CA Cert erstellen..." openssl genrsa -aes256 -out ca_key_vpn.pem 2048 openssl req -new -x509 -days 3650 -key ca_key_vpn.pem -out ca_cert_vpn.pem -set_serial 1 chmod 700 ../certs touch serial echo "01" > serial echo "" echo "Server Cert erstellen..." echo "Wichtig: Common Name einzigartig halten und merken - wird sp�eter im VPN Script gebraucht" echo "" openssl req -new -newkey rsa:2048 -out server_csr_vpn.pem -nodes -keyout server_key_vpn.pem -days 3650 openssl x509 -req -in server_csr_vpn.pem -out server_cert_vpn.pem -CA ca_cert_vpn.pem -CAkey ca_key_vpn.pem -CAserial serial -days 3650 rm server_csr_vpn.pem echo "" echo "Zufallszahlen erstellen..." openssl dhparam -out dh2048.pem 2048 echo "" echo "Client Certs mit folgendem Commando vorbereiten:" echo "./clientcerts <clientname>"
Erstellen von VPN Zertifikaten für den Client
#!/bin/bash cd certs echo "Client Cert vorbereiten..." openssl req -new -newkey rsa:2048 -out $1_csr_vpn.pem -nodes -keyout $1_key_vpn.pem -days 3650 echo "" echo "Client Certs erstellen..." openssl x509 -req -in $1_csr_vpn.pem -out $1_cert_vpn.pem -CA ca_cert_vpn.pem -CAkey ca_key_vpn.pem -CAserial serial -days 3650 echo "" echo "CSR Cert loeschen..." rm $1_csr_vpn.pem echo "Clientcert $1_cert_vpn.pem und Clientkey $1_key_vpn.pem erstellt..." cd ..
Brennen von CDs in der Konsole
cdrecord -v -eject -driveropts=burnfree -dao dev=0,1,0 speed=24 /tmp/cd.img CDRW löschen cdrecord dev=0,0,0 -v blank=all * -v >>verbose<< * -driveropts=burnfree ,verwendet burnproof, oder ähnliche Schutzmechanismen zum vermeiden von Bufferunderruns * -eject ,wirft die CD nach dem Brennen aus * dev=0,1,0 ,hierüber wird das Gerät festgelegt, mit dem gebrannt wird: erste Nummer SCSI-Bus, zweite Nummer SCSI-ID, dritte Nummer Logical Unit Number ( LUN ) die Werte sind mit >> cat /proc/scsi/scsi << oder cdrecord -scanbus >> herauszufinden * -dao ,schreibt unser ISO-File im Disk AT Once Modus, siehe weiter oben * -speed=24 der Brenner soll mit 24-facher Geschwindigkeit brennen * /tmp/cd.img Dies ist der Name des CD-Image, das auf den Rohling gebrannt werden soll.
FritzBox Restart Script
#!/bin/bash SITEPASSWD=fritzbox wget -O /dev/null --user-agent="Mozilla/5.0" --post-data="login:command/password=$SITEPASSWD" "http://fritz.box/cgi-bin/webcm?getpage=../html/index_inhalt.html" wget -q -O /dev/null --post-data="logic:command/reboot" http://$SITEPASSWD@fritz.box/cgi-bin/webcm | echo "Fritzbox wird neu gestartet.."
Verzeichnis über Netzwerk auf SSH Server in Tar File sichern
tar -c * | ssh backupserver "cat - > /backups/backup.tar"; komprimiertes tar File übertragen tar -cz * | ssh backupserver "cat - > /backups/backup.tgz";
Wlan Karte Ad-Hoc ueber Madwifi
sudo wlanconfig ath0 destroy sudo wlanconfig ath0 create wlandev wifi0 wlanmode adhoc
Wlan über WPA Supplicant Konfigurieren
Wlan Device anlegen
sudo wlanconfig ath0 destroy sudo wlanconfig ath0 create wlandev wifi0 wlanmode sta
Konfigurationsdateien ändern
/etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 network={ ssid="tommlonair" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk="wpakey1234" } /etc/network/interfaces # Wlan Interface ath0 iface ath0 inet static address 192.168.0.250 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 dns-search planetensystem wpa-driver madwifi wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf auto ath0
Clamscan Script für LOG File mit Datum
#!/bin/bash datestring=$(date +"%Y%m%d") clamscan --recursive --verbose --log=clamscan_$datestring.log
Pakete aus seinen Sourcen installieren
Pakete saugen ..meist tar.gz auspacken mit tar xzf <name>.tar.gz z.B. tcpdump http://www.tcpdump.org/release/libpcap-0.9.8.tar.gz http://www.tcpdump.org/release/tcpdump-3.9.8.tar.gz oder nload http://prdownloads.sourceforge.net/nload/nload-0.6.0.tar.gz ins Verzeichnis wechseln und folgendes aufrufen: ./configure make Script mit Aufruf testen ./nload z.B. Ins System installieren make install fertsch xD
Iso Image aus Verzeichnis erstellen
mit Hilfe von mkisofs http://wiki.ubuntuusers.de/mkisofs l = lange Dateinamen (bis 31 Zeichen) R = Rockford File System (255 Zeichen und tiefere Verzeichnisebenen, sichert ausserdem Unix Dateisystemrechte) J = Joilet File System Format (bis 64 Zeichen + Sonderzeichen und Umlaute) mkisofs -o home.iso -l /home
PDFs zusammenfügen / splitten
apt-get install pdftk pdftk beispiel.pdf formular.pdf cat output beispiel_gesamt.pdf
Festplatten über SSH Klonen
dd if=/dev/hda | ssh user@host "dd of=/dev/hda"
Mplayer Datei per SSH Streamen
ssh root@192.168.0.100 "cat /mnt/hdb7/iso/copy/video.avi" | mplayer -cache 8192 -
Festplatten Wiping
#!/bin/bash for i in `seq 1 10` do dd if=/dev/zero of=/dev/sda bs=2m progress=100 conv=noerror dd if=/dev/urandom of=/dev/sda bs=2m progress=100 conv=noerror wipe -T -x 1 -o 2097152 -a | dd of=/dev/sda bs=2m conv=noerror done
funktioniert bei mir nur in abgeänderter Form
#!/bin/bash for i in `seq 1 10` do dd if=/dev/zero of=/dev/sda bs=2097152 conv=noerror dd if=/dev/urandom of=/dev/sda bs=2097152 conv=noerror done
Festplattenzugriffe loggen
Eine 1 in der Datei /proc/sys/vm/block_dump schaltet einen Debug-Modus ein. die bekommt man mit dem Befehl echo 1 > /proc/sys/vm/block_dump in die Datei. Alle Zugriffe auf die Platte werden dann in /var/log/kern.log protokolliert. eine 0 schaltet den Modus wieder aus, also mit der Eingabe von echo 0 > /proc/sys/vm/block_dump.
Windows selbstextrahierende Archive entpacken *.exe
unzip [12345].exe
Script zum kopieren der Firefox Einstellungen auf alle User im System
# Update des Dateibaumes # Lokalisieren der vorhandenen prefs.js # Überschreiben der Dateien in pref-dateien.dat mit pref.js im Skriptverzeichnis updatedb locate /pref.js | grep Firefox > firefox-pref-dateien.dat for file in $(cat firefox-pref-dateien.dat); do cp pref.js "${file}"; done
defektes Paket entfernen
bei Meldung aptitude: ".. Paket entfernen.." Fehler Zusammenfassung: # cd /var/lib/dpkg/ # sudo cp status status-backup # sudo gedit status - Abschnitt mit dem Betreffenden Paket finden und entfernen - Änderungen speichern # sudo apt-get update