| |||
|
Allgemeines zu Linuxrsynczum Abgleich von Verzeichnissen oder Kopieren von Partitionen, lokal oder remote. Wenn an source ein "/" angehängt ist, erfolgt der Abgleich relativ, zumindest bei der Optionskombination-avurt
> rsync -avurt -e ssh [--delete] [--progress] [--exclude EXCLUDES] [--include-from FILE] source destweitere Optionen: - z Kompression an in der Steuerdatei FILE: + Filename_include - Filename_exclude ShellscripteDatum in Shellskripten benutzen:!#/bin/bash DATUM=`date +%y-%m-%d` echo $DATUMZyklisches ausführen von Kommandos > for((;;));do date; df -k; sleep 10; doneUmleiten von STDIO und STDERR in eine Datei > commando 1>filename 2>&1Alle Dateien finden, die neuer als 14 Tage alt sind oder in den letzten 14 Tagen geändert wurden: $ find . -type f -mtime -14Alle Dateien die zwischen 2 Datums geändert wurden finden: $ find . -type f -printf '%TY%Tm%Td %p\n' | awk '"20210625"<=$1 && $1<="20210701"' $ find . -newermt 20210625 -a ! -newermt 20210701Alle Dateien, die den String Max enthalten, in einen Ordner kopieren: $ find SOURCEDIR>/ -name '*Max*' -type f -exec cp {} DESTDIR>/ \;Alle Dateien, die letzten drei Tage geändert wurden, in einen Ordner kopieren (User und Rechte erhalten): $ find SOURCEDIR>/ -mtime -3 -type f -exec rsync -avrtHAX {} DESTDIR>/ \; \;Mehr Dateien löschen als rm -rf * zulässt, auch mit Leerzeichen im Dateinamen? Mit xargs :
$ find . -name 'spam-*' -print0 | xargs -0 rmAlle jpg-Bilder grösser als 5MB kleinrechnen, so dass die lange Seite 2000 Pixel hat (auch mit xargs ):
$ find . -name "*.jpg" -type f -size +5M | xargs mogrify -scale 2000x2000Mehrere Dateien umbenennen, z.B. durchnummerieren: $ let a=0; for i in *.mp3; do let a=a+1; b=`printf XYZ-CD01_%02d.mp3 $a`; mv $i $b; doneDateien mit Leerzeichen im Namen sind eine Plage, mit folgendem Befehl werden alle Leerzeichen durch Unterstriche "_" ersetzt: $ rename 's/\s/_/g' *Falls man nicht mehr auf die Kiste kommt, weil die passwd zerschossen ist... mit Linux boot Disk booten .... # mount /dev/sda1 hd # cd hd # cd etc # mv shadow shadow.old # mv passwd passwd.old # cat > passwd root::0:0:xxx:/:/bin/bash <CTRL><D>in /etc/shadow muß bei root die 2. Spalte leer sein wenn in der /etc/passwd
in der zweiten Spalte bei root ein "x" steht. Dies ist bei allen moderneren LINUX und UNIX
Varianten so.
In die /etc/shadow und /etc/passwd muss vom vi aus mit w! geschrieben werden.Mount NFS Laufwerk # mount -t nfs servername:/path /mntext2 nach ext3 konvertierten: # tune2fs -j /deviceAnschließend /etc/fstab anpassen Damit ext2 nicht dauernd flushd und Plattenzugriffe macht, in /etc/fstab
/dev/hda3 /home ext3 rw,noatime,commit=3600bzw: # mount -t ext3 -o commit=3600,noatime /dev/hda1 /mnt/whateverReMount schreibgeschütztes FS: # mount -o remount -o rw /dev/hda3 /Datum einstellen: > date MMDDhhmmYYYYPlatte total bügeln: # dd if=/dev/urandom of=/dev/hda bs=65535 # dd if=/dev/zero of=/dev/hda bs=65535einzelne Datei sicher löschen (bei Debian Sarge dabei): # shred -n anz filenameDateisystem von ext2 nach ext3 umwandeln # tune2fs -j /dev/sda1Dateisystem von ext2 nach ext4 umwandeln # tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sda1Dateisystem von ext3 nach ext2 umwandeln # tune2fs -O ^has_journal /dev/sda1Tar zum Kopieren von Partitionen, im SOURCE Verzeichnis > tar cfSp - * | ( cd /DEST && tar xfSp - ) oder > tar cpSz * | ( cd /DEST && tar xpSz ) > find -depth -print | cpio -pdauV /DESTmit TAR nur neuere Dateien kopieren: > tar -cvf name.tar -N "YYYY-MM-DD" * sichert Dateien neuer als ...auch wenn init 0 nicht mehr geht, funktioniert das Schreiben der Triggerdevices unter /proc
oft noch. Zuerst alles readonly mounten (u) und dann neu booten (b)
# echo u > /proc/sysrq-trigger # echo b > /proc/sysrq-trigger PerformanceanalyseSystemstatistik (systools müssen installiert sein)
# sysstatWelcher Prozess hängt!? Wenn z.B. ps -aux bei der Ausgabe stoppt? - strace davor:
# strace ps -aux Debian System aktualisierenAlternativ kann man das mit aptitude auch interaktiv machen.Update, Installieren und alle Fragen mit Ja beantworten # apt-get update # apt-get -y dist-upgradeUpdate, Sicherheitsupdates und harmlose Pakete installieren, dann veraltete Paketquellen löschen # apt-get update # apt-get -yt $(lsb_release -cs)/updates dist-upgrade # apt-get --trivial-only dist-upgrade # apt-get autoclean Sendmaildirekt ansprechen:> telnet wega 25 HELO EMPFÄNGERDOMAIN ulm.go-itservice.de, ohne ":" MAIL FROM: SENDER god@heaven.org, manche Lotus Notes Server erwarten Mail Adressen in Spitzklammern: <god@heaven.org> RCPT TO: EMPFÄNGER go@wega.ulm.go-itservice.de data schaltet Mailtext ab nächster Zeile ein Subject: SUBJECT innerhalb Data MAILTEXT . beendet und sendet mail quit beendet sendmailSendmail auf Kommandozeile benutzen sendmail -t -F sender@domain < testfilewobei testfile so aussieht: To: recipient@domain Subject: Testsubject bla bla bla .Smarthost: in der /etc/sendmail.cf den Eintrag hinzufügen:
DS172.16.30.1Sendmail ohne DNS, in /etc/service.switch :
hosts files aliases filesund in der sendmail.cf den Kommentar vor ServiceSwitchFile entfernen.
mit -p smtp:172.16.30.1 sollte es via Relay gehen, das tut aber nicht:
schickt Mail über smtp und 172.16.30.1 als relay.
Falls man sich nach MX Records richten will, entfällt der Teil mit -p
POPdirekt ansprechen
> telnet wega 110
USER USERNAME Anmelden
PASS PASSWD POP Password eingeben
STAT Mailbox: Anzahl Dateien, Grösse
LIST Nachrichten und Grösse anzeigen
RETR NUM Nachricht Nummer NUM anzeigen
DELE NUM Nachricht Nummer NUM zum Löschen markieren
RSET Änderungen rückgängig machen
QUIT Abmeldungen, gelesene Meldungen werden ohne
master Boot record (MBR) sichern/wiederherstellensichern (im Beispiel die 1. SATA Platte,sda )
# dd if=/dev/sda of=sda.mbr bs=512 count=1restaurieren, Vorsicht!: # dd if=sda.mbr of=/sda/hda bs=512 count=1 Partitionstabelle sichern/wiederherstellensichern (im Beispiel die 1. SATA Platte,sda ):
# sfdisk -d /dev/sda > sda.partrestaurieren, Vorsicht!: # sfdisk /dev/sda < sda.partFalls die Partitionstabelle zerstört wurde, kann man versuchen, sie mit gpart
wieder zu analysieren.
Vorsicht, das ist letztes Mittel und sehr gefährlich! Optionen siehe man gpart
# gpart /dev/sda root-Passwort der mySQL-Datenbank zurücksetzenFalls man das root-Passwort der DB vergessen hat: mySQL stoppen, ohne Netzwerk und Sicherheit starten# /etc/init.d/mysql stop # mysqld_safe --skip-grant-tables --skip-networking & # mysql -u rootin der MySQL Oberfläche das Passwort ändern > USE mysql; > UPDATE user SET password='PASSWORD' WHERE user='root'; > FLUSH privileges; > quit;mySQL wieder stoppen und normal starten # /etc/init.d/mysql stop # /etc/init.d/mysql start # mysql -u root -p PASSWORDsollte jetzt gehen... SED> sed <infile >outfile 's/aaa/bbb/' Ersetzung mit reg_exps > sed '/aaa/s/bbb/ccc/g' Ersetzung von bbb durch ccc, wenn aaa in Zeile enthalten ist-Im Internet gibts eine Menge interessanter SED Einzeiler zu finden! GDMmehrere graphische Anmeldungen gleichzeitig: in der Datei/etc/gdm/gdm.conf den
Abschnitt [servers] anpassen:
[servers] 0=Standard 1=StandardDas Umschalten geschieht mit <STRG><ALT><F7> und <STRG><ALT><F8> |