Linux/Tipps/Allgemein: Unterschied zwischen den Versionen
→rsync Fehler 24 (some files vanished before they could be transferred)
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) |
||
(58 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 112: | Zeile 112: | ||
====Wer hat offene Dateien in einem Verzeichnis?==== | ====Wer hat offene Dateien in einem Verzeichnis?==== | ||
lsof +D /dir | lsof +D /dir | ||
====Anzahl der offenen Dateien==== | |||
lsof | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20 | |||
====Wie findet man zum Löschen vorgemerkte (aber noch offene) Dateien?==== | ====Wie findet man zum Löschen vorgemerkte (aber noch offene) Dateien?==== | ||
Zeile 147: | Zeile 150: | ||
Quelle: http://freshrpms.net/docs/bios-flash/ | Quelle: http://freshrpms.net/docs/bios-flash/ | ||
====.iso Image auf DVD brennen==== | |||
growisofs -speed=4.0 -dvd-compat -Z /dev/dvdrecorder=<.iso File> | |||
====Verzeichnis auf DVD brennen==== | |||
growisofs -speed=4.0 -dvd-compat -R -Z /dev/dvdrecorder <Verzeichnis> | |||
====Video-DVD brennen==== | |||
growisofs -speed=4.0 -dvd-video -Z /dev/dvdrecorder <Verzeichnis> | |||
====ssh ohne Passwort==== | |||
http://www.debianadmin.com/ssh-your-debian-servers-without-password.html | |||
====Grub-Bootblock installieren==== | |||
Beispiel: 1.Platte ist Bootplatte, Bootpartition ist die 1. Partition. | |||
grub | |||
grub> root (hd0,0) | |||
grub> setup (hd0) | |||
grub> quit | |||
====Windows-Eintrag für Grub==== | |||
'''/boot/grub/menu.lst''': | |||
title Windows 2000 | |||
root (hd0,0) # hdPLATTE,PARTITION, z.B. hd1,0 -> Platte 2, Partition 1 | |||
makeactive | |||
chainloader +1 | |||
====mysql Zeichensatz==== | |||
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html | |||
====Blockgröße eines ext3 Filesystems==== | |||
dumpe2fs <device> | less | |||
====Gimp druckt Postscript-Text statt Grafik==== | |||
Beim Drucker-Setup im Druckdialog | |||
kprinter -d<Printername> -oraw | |||
ersetzen durch | |||
kprinter -stdin | |||
====Korrupte MakerNote von Olympus aus JPEG-Bild entfernen==== | |||
exif --remove --tag=0x927c --ifd=EXIF -o <Filename> <Filename> | |||
====KDE-Fenster im maximierten Zustand mit Klick ganz oben rechts schließen können==== | |||
'''Kontrollzentrum -> Arbeitsfläche -> Fenstereigenschaften -> Verschieben -> Verschiebung und Größenänderung von maximierten Fenstern zulassen''' abschalten. | |||
====NFS-Share von einer Live-CD aus mounten==== | |||
mkdir /mnt/<Directory> | |||
/etc/init.d/portmap start | |||
mount -o nolock <IP-Adresse>:/<Pfad> /mnt/<Directory> | |||
====KDE sagt beim Anmelden, dass klauncher nicht gestartet werden kann==== | |||
rm /home/<Benutzer>/.DCOPserver* | |||
Dann X neu starten. | |||
====DPMS im X-Server konfigurieren==== | |||
Quelle: http://www.doctort.org/adam/nerd-notes/disabling-screen-blanking-in-xorg.html | |||
'''/etc/X11/xorg.conf''', '''Section "Monitor"''': | |||
Option "DPMS" | |||
'''/etc/X11/xorg.conf''', '''Section "ServerLayout"''': | |||
Option "BlankTime" "0" | |||
Option "StandbyTime" "0" | |||
Option "SuspendTime" "0" | |||
Option "OffTime" "0" | |||
====chroot==== | |||
Mit '''chroot''' kann man die Shell in eine andere Installation (z.B. auf einer anderen Platte) bringen und somit simulieren, dass man mit der anderen Installation gebootet hätte. | |||
Optional Devices und tmp der aktuellen Installation binden: | |||
mount --bind /dev/ <anderes Root-Verzeichnis>/dev/ | |||
mount --bind /dev/pts <anderes Root-Verzeichnis>/dev/pts | |||
mount --bind /tmp/ <anderes Root-Verzeichnis>/tmp/ | |||
Dann: | |||
chroot <anderes Root-Verzeichnis> /bin/bash | |||
Optional alle Env-Variablen der aktuellen Installation löschen: | |||
unset `env | cut -d= -f1` | |||
Dann: | |||
/usr/sbin/env-update | |||
source /etc/profile | |||
Optional (wenn vorher alle Env-Variablen gelöscht wurden): | |||
export HOME=/root | |||
export TERM=xterm | |||
Optional /dev/shm, proc, sysfs und usbfs mounten (proc muss z.B. gemountet werden zum Kernel, Java oder htop compilieren, /dev/shm für Python): | |||
mount -t tmpfs none /dev/shm | |||
mount -t proc proc /proc | |||
mount -t sysfs sys /sys | |||
mount -t usbfs usbfs /proc/bus/usb | |||
Vor dem Verlassen des chroots sollte man diese Verzeichnisse wieder unmounten. | |||
====NFS-Optionen herausfinden==== | |||
Mit '''nfsstat''' kann man herausfinden, mit welchen Optionen ein NFS gemountet ist: | |||
nfsstat -m | |||
====diff im Subversion-Format==== | |||
diff -u <alte_Datei> <neue_Datei> | |||
====Verzeichnis an anderer Stelle nochmal einbinden==== | |||
Einmalig: | |||
mount --bind olddir newdir | |||
Dauerhaft in '''/etc/fstab''': | |||
/olddir /newdir none bind | |||
====KDE kann auf eine angeschlossene Digitalkamera nicht zugreifen==== | |||
Das ist evtl. ein Rechteproblem. Kamera anschließen und dann als root: | |||
lsusb | |||
Ergebnis (Beispiel): | |||
Bus 6 Device 2: ID '''04cb''':'''01e4''' Fuji Photo Film Co., Ltd | |||
Dann in '''/etc/udev/rules.d/70-libgphoto2.rules''' eine Zeile hinzufügen mit den ermittelten Daten: | |||
ATTRS{idVendor}=="'''04cb'''", ATTRS{idProduct}=="'''01e4'''", GROUP="plugdev" | |||
Quelle: http://www.linuxquestions.org/questions/linux-hardware-18/fuji-finepix-f30-doesnt-work-612826/#post3019566 | |||
====Alle Dateien umbenennen nach Kleinschrift==== | |||
Im aktuellen Verzeichnis: | |||
for f in `ls`; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'`; done | |||
Rekursiv: | |||
for f in `find`; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'`; done | |||
====PDF-Druckertreiber installieren==== | |||
Quelle: http://jtwo.de/2008/04/pdf-drucker/ | |||
* emerge -av cups-pdf | |||
* http://localhost:631 | |||
* '''Drucker hinzufügen''' | |||
* '''Name''', '''Ort''' und '''Beschreibung''' ausfüllen und '''Fortsetzen''' anklicken | |||
* '''CUPS-PDF (Virtual PDF Printer)''' auswählen und wieder '''Fortsetzen''' | |||
* '''Generic''' und wieder '''Fortsetzen''' | |||
* '''Generic CUPS-PDF Printer''' und '''Drucker hinzufügen''' | |||
/etc/cups/cups-pdf.conf: | |||
Out /${HOME}/pdf | |||
====vncserver mit KDE4==== | |||
Damit beim Verbinden mit einem vncserver unter KDE4 kein schwarzes Bild auf dem Client erscheint, muss man den vncserver z.B. so starten: | |||
dbus-launch vncserver :2 -geometry 1024x768 -depth 16 | |||
Der Server von '''tightvnc''' hat Probleme mit einigen KDE4-Effekten. '''tigervnc''' funktioniert aber einwandfrei. | |||
====Kopieren mit tar==== | |||
cp ist nicht immer geeignet zum Kopieren von kompletten Rechnern, weil es z.B. beim Kopieren von manchen Dateien in /proc einfach hängen bleibt. Man kann aber auch mit tar kopieren: | |||
cd <srcdir> | |||
tar -cf - . | (cd <destdir>;tar -xf -) | |||
====Timestamps in der bash history==== | |||
Quelle: http://larsmichelsen.com/open-source/bash-timestamp-in-bash-history/ | |||
'''/etc/bash/bashrc''': | |||
export HISTTIMEFORMAT="%F %T " | |||
====JPEG-Bilder drehen entsprechend den EXIF-Informationen==== | |||
jhead -autorot *.jpg | |||
oder | |||
exifautotran *.jpg | |||
Danach noch das Filedatum wieder auf das Aufnahmedatum setzen: | |||
exiftool '-DateTimeOriginal>FileModifyDate' <DIRECTORY> | |||
====XFS defragmentieren==== | |||
Abfrage: | |||
xfs_db -c frag -r /device | |||
Defragmentieren: | |||
xfs_fsr -v /mountpoint | |||
====Externe USB-Festplatte fährt von selbst immer wieder hoch==== | |||
Das kann an '''udisks''' liegen. | |||
'''/etc/udev/rules.d/80-udisks.rules''': | |||
KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", ENV{UDISKS_DISABLE_POLLING}="1", ENV{UDISKS_IGNORE}="1", ENV{ID_ATA_FEATURE_SET_SMART_ENABLED}="0" | |||
Wenn das nicht reicht, dann könnte es noch an KDE liegen. | |||
'''/etc/portage/package.use''': | |||
kde-base/kdelibs -udisks | |||
Dann: | |||
emerge -1 kdelibs | |||
====ALSA Audioausgabe auf 2 Geräte gleichzeitig==== | |||
Quelle: http://www.avsforum.com/t/1269302/simultaneous-multiple-outputs-with-alsa#post_19060197 | |||
Beispiel mit Intel Audio Onboard (ASRock P67 Performance) und HDMI-Audio (5.1) über Nvidia-Grafikkarte (Zotac GeForce GT 630 ZONE Edition). | |||
'''~/.asoundrc''': | |||
pcm.!default { | |||
type plug | |||
slave { | |||
pcm multi | |||
} | |||
ttable.0.0 1.0 | |||
ttable.1.1 1.0 | |||
ttable.0.2 1.0 | |||
ttable.1.3 1.0 | |||
ttable.2.4 1.0 | |||
ttable.3.5 1.0 | |||
ttable.4.6 1.0 | |||
ttable.5.7 1.0 | |||
} | |||
pcm.multi { | |||
type multi | |||
slaves.a.pcm "hw:0,0" | |||
slaves.a.channels 2 | |||
slaves.b.pcm "hw:1,3" | |||
slaves.b.channels 6 | |||
bindings.0.slave a | |||
bindings.0.channel 0 | |||
bindings.1.slave a | |||
bindings.1.channel 1 | |||
bindings.2.slave b | |||
bindings.2.channel 0 | |||
bindings.3.slave b | |||
bindings.3.channel 1 | |||
bindings.4.slave b | |||
bindings.4.channel 2 | |||
bindings.5.slave b | |||
bindings.5.channel 3 | |||
bindings.6.slave b | |||
bindings.6.channel 4 | |||
bindings.7.slave b | |||
bindings.7.channel 5 | |||
} | |||
ctl.!default { | |||
type hw | |||
card 0 | |||
} | |||
Stereo-Ausgabe auf Onboard und Nvidia 3: | |||
pcm.!default { | |||
type plug | |||
slave { | |||
pcm multi | |||
} | |||
ttable.0.0 1.0 | |||
ttable.1.1 1.0 | |||
ttable.0.2 1.0 | |||
ttable.1.3 1.0 | |||
} | |||
pcm.multi { | |||
type multi | |||
slaves.a.pcm "hw:0,0" | |||
slaves.a.channels 2 | |||
slaves.b.pcm "hw:1,3" | |||
slaves.b.channels 2 | |||
bindings.0.slave a | |||
bindings.0.channel 0 | |||
bindings.1.slave a | |||
bindings.1.channel 1 | |||
bindings.2.slave b | |||
bindings.2.channel 0 | |||
bindings.3.slave b | |||
bindings.3.channel 1 | |||
} | |||
ctl.!default { | |||
type hw | |||
card 0 | |||
} | |||
Stereo-Ausgabe auf Onboard und Nvidia 3 '''und''' 7: | |||
pcm.!default { | |||
type route; | |||
slave.pcm "multi"; | |||
slave.channels 6; | |||
ttable.0.0 1.0; | |||
ttable.1.1 1.0; | |||
ttable.0.2 1.0; | |||
ttable.1.3 1.0; | |||
ttable.0.4 1.0; | |||
ttable.1.5 1.0; | |||
} | |||
pcm.multi { | |||
type multi | |||
slaves.a.pcm "hw:0,0" | |||
slaves.a.channels 2 | |||
slaves.b.pcm "hw:1,3" | |||
slaves.b.channels 2 | |||
slaves.c.pcm "hw:1,7" | |||
slaves.c.channels 2 | |||
bindings.0.slave a | |||
bindings.0.channel 0 | |||
bindings.1.slave a | |||
bindings.1.channel 1 | |||
bindings.2.slave b | |||
bindings.2.channel 0 | |||
bindings.3.slave b | |||
bindings.3.channel 1 | |||
bindings.4.slave c | |||
bindings.4.channel 0 | |||
bindings.5.slave c | |||
bindings.5.channel 1 | |||
} | |||
ctl.!default { | |||
type hw | |||
card 0 | |||
} | |||
KDE4 kommt nicht damit klar, den Sound auf 2 Soundkarten zu schicken (klingt verzerrt). Für den Fall kann man mehrere ALSA-Devices einrichten und KDE auf eines ausgeben lassen, das nur ein Hardware-Device verwendet. In diesem Beispiel ist '''ALSA:default''' nur eine Soundkarte und '''ALSA:all''' sind alle Soundkarten. Letzteres verwendet man dann bei Programmen, die damit umgehen können (z.B. MythTV). | |||
pcm.!default { | |||
type hw | |||
card 0 | |||
device 0 | |||
} | |||
pcm.all { | |||
type route; | |||
slave.pcm "multi"; | |||
slave.channels 6; | |||
ttable.0.0 1.0; | |||
ttable.1.1 1.0; | |||
ttable.0.2 1.0; | |||
ttable.1.3 1.0; | |||
ttable.0.4 1.0; | |||
ttable.1.5 1.0; | |||
} | |||
pcm.multi { | |||
type multi | |||
slaves.a.pcm "hw:0,0" | |||
slaves.a.channels 2 | |||
slaves.b.pcm "hw:1,3" | |||
slaves.b.channels 2 | |||
slaves.c.pcm "hw:1,7" | |||
slaves.c.channels 2 | |||
bindings.0.slave a | |||
bindings.0.channel 0 | |||
bindings.1.slave a | |||
bindings.1.channel 1 | |||
bindings.2.slave b | |||
bindings.2.channel 0 | |||
bindings.3.slave b | |||
bindings.3.channel 1 | |||
bindings.4.slave c | |||
bindings.4.channel 0 | |||
bindings.5.slave c | |||
bindings.5.channel 1 | |||
} | |||
ctl.!default { | |||
type hw | |||
card 0 | |||
} | |||
Alternative mit Verwendung der Alsa Devicenamen statt Hardwaredevices (wurde benötigt bei einer Asus Grafikkarte, '''aplay -L''' listet die Devicenamen): | |||
pcm.all { | |||
type route; | |||
slave.pcm "multi"; | |||
slave.channels 4; | |||
ttable.0.0 1.0; | |||
ttable.1.1 1.0; | |||
ttable.0.2 1.0; | |||
ttable.1.3 1.0; | |||
} | |||
pcm.multi { | |||
type multi | |||
slaves.a.pcm "hw:0,0" | |||
slaves.a.channels 2 | |||
slaves.b.pcm "hdmi:CARD=NVidia,DEV=3" | |||
slaves.b.channels 2 | |||
bindings.0.slave a | |||
bindings.0.channel 0 | |||
bindings.1.slave a | |||
bindings.1.channel 1 | |||
bindings.2.slave b | |||
bindings.2.channel 0 | |||
bindings.3.slave b | |||
bindings.3.channel 1 | |||
} | |||
====X11 Forwarding==== | |||
Auf dem Server (auf dem die Applikation läuft) die sshd config anpassen:<br> | |||
'''vi /etc/ssh/sshd_config''' | |||
X11Forwarding yes | |||
Dann: | |||
/etc/init.d/sshd restart | |||
Auf dem Client (auf dem die GUI angezeigt werden soll): | |||
ssh -Y user@server <Applikation> | |||
====Private ID3-Tags von MP3-Dateien entfernen==== | |||
eyeD3 --remove-frame PRIV <Datei> | |||
====Alle Dateien ohne Besitzer oder ohne Gruppe finden==== | |||
find / -nouser | |||
find / -nogroup | |||
====MySQL komplett sichern==== | |||
Backup: | |||
mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql | |||
Restore: | |||
mysql -u root -p < alldb.sql | |||
====Datumswerte in JPEG-Bildern entfernen==== | |||
Alle Werte abfragen: | |||
exiftool -a -s -G -time:all file.jpg | |||
Alle Werte entfernen: | |||
exiftool -alldates= -gpsdatestamp= -gpstimestamp= -MetadataDate= file.jpg | |||
====rsync Fehler 24 (some files vanished before they could be transferred)==== | |||
Anscheinend ist die einzige Abhilfe ein Wrapper-Script: | |||
#!/bin/sh | |||
rsync "$@" | |||
e=$? | |||
if test $e = 24; then | |||
exit 0 | |||
fi | |||
exit $e | |||
====Applikationen öffnen Links in Firefox, obwohl Chrome als Standardbrowser eingestellt ist==== | |||
xdg-mime default google-chrome.desktop x-scheme-handler/http | |||
xdg-mime default google-chrome.desktop x-scheme-handler/https |