Dateiverwaltung: Unterschied zwischen den Versionen

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 98: Zeile 98:
  
 
== rsync ==
 
== rsync ==
==== Installation von <tt>Rsync</tt> ====
+
=== Leerzeichen im Zielverzeichnis ===
[[Datensicherung#Download_und_Installation|Installation von Rsync]]
 
* Wiederherstellen von Dateien aus Backup
 
rsync -av --numeric-ids /backup/server.hs/backup.0/home/user_1 /home
 
# über SSH:
 
rsync  -avz --numeric-ids -e ssh primergy:/backup/server.hs/backup.0/home/user_1 /home
 
* Backup mit Rsync
 
# Ausschließen mehrerer Verzeichnisinhalte
 
rsync -avz --numeric-ids --exclude media/* --exclude=mnt/* --delete-excluded <quellverzeichnis> <zielverzeichnis>
 
 
 
# Verwendung eines Exclude Files
 
rsync -avz --numeric-ids --exclude-from=excluded.txt --delete-excluded <quellverzeichnis> <zielverzeichnis>
 
 
 
* Leerzeichen im Zielverzeichnis
 
 
Wenn im Zielverzeichnis Leerzeichen enthalten sind, werden diese abgeschnitten. Das kann verhindert werden durch folgende Option
 
Wenn im Zielverzeichnis Leerzeichen enthalten sind, werden diese abgeschnitten. Das kann verhindert werden durch folgende Option
 
  --protect-args
 
  --protect-args
  
* Mehrere Dateien/Verzeichnisse excluden
+
=== Mehrere Dateien/Verzeichnisse excluden ===
Komplettes Backup auf einen gemountete Datenträger kopieren
+
* Geschwungenen Klammern
  rsync -avH --numeric-ids \
+
  rsync --exclude={/etc/fstab,/etc/default/grub,/boot/grub2/grub.cfg,/home,/root,/var,/srv}
    --exclude={/etc/fstab,/etc/default/grub,/boot/grub2/grub.cfg,/home,/root,/var,/srv} \
+
* Exclude File
    -e ssh 10.0.0.111:/media/disk/suseVirtualbox/backup.0/* /mnt/tmp
+
rsync --exclude-from=excluded.txt
 +
* einzeln excluden
 +
rsync --exclude=/etc/fstab --exclude=/etc/default/grub --exclude=/boot/grub2/grub.cfg ...
  
* Sehr große Dateien
+
=== Sehr große Dateien ===
 
Rsync-Optionen
 
Rsync-Optionen
 
  --inplace --partial
 
  --inplace --partial
Zeile 135: Zeile 124:
 
* TAR Archiv entpacken
 
* TAR Archiv entpacken
 
  tar -xf bak.tar
 
  tar -xf bak.tar
 +
* GZ Archiv entpacken
 +
cd /var/log/apache2
 +
gunzip ./access_log-20190617.xz
 +
tar -xf ./access_log-20190617
 
* XZ Archiv entpacken
 
* XZ Archiv entpacken
 
XZ Archive sind verlustfrei gepackt.
 
XZ Archive sind verlustfrei gepackt.

Aktuelle Version vom 2. November 2024, 17:04 Uhr

Berechtigungen

chmod

  • Berechtigungen nur für Dateien bzw. Verzeichnisse ändern
find . -type f -exec chmod 444 {} \;  # chmod auf Dateien
find . -type d -exec chmod 555 {} \;  # chmod auf Verzeichnisse
  • Setzen des Set User Id Bit = SUID Bit

Vor die drei Ziffern wird eine 4 gestellt. Beispiel:

chmod 4755 filename

oder

chmod u+s /usr/sbin/exim4

ergibt

-rwsr-xr-x 1 root root 875104 Jan  2  2013 /usr/sbin/exim4

Das x beim Eigentümer wird durch s ersetzt. Diese Datei wird daraufhin immer unter der ID des Besitzers ausgeführt, egal von wem sie aufgerufen wurde.

  • Rechte von Verzeichnissen

Betrachtet man ein Verzeichnis als Datei, dessen Inhalt eine Liste von Dateien ist, so erklärt sich die Wirkung der Zugriffsrechte von selbst.

Ausführen heißt Öffnen des Verzeichnisses
Schreiben heißt den Inhalt des Verzeichnisses verändern
Lesen heißt in das Verzeichnis hineinschauen

Lesen ohne Ausführen ist also nicht möglich.

  • Dateirechte, Benutzerrechte unter UNIX

Hervorragende Einführung Hier werden auch die Sonderrechte SUID, SGID erklärt.

http://www.linux-user.de/ausgabe/2003/12/066-acl/index.html

setuid

Durch das Setuid Bit wird eine ausführbare Datei mit den Rechten des Besitzers ausgeführt und nicht - wie sonst - mit den Rechten des aufrufenden Benutzers. Typischerweise gehört so eine Datei dem Administrator root.

Achtung: Das funktioniert angeblich nur mit Binärdateien, nicht mit einem Shellscript!

chmod +s Dateiname 
 
# oder
chmod u+s Dateiname

Sticky Bit

Wird verwendet für das /tmp Verzeichnis.

chmod +t /local/tmp

Anzeige der Berechtigungen

drwxrwxrwt  2 root      root   4096 14. Feb 10:18 tmp

umask

Der Befehl ändert die Grundeinstellung der Zugriffsrechte bei neuen Dateien bzw. Verzeichnissen.

Standardwert für Dateien: 666

Standardwert für Verzeichnisse: 777

umask 0022

ergibt für Dateien: 666 - 022 = 644

ergibt für Verzeichnisse: 777 - 022 = 755

Man kann diesen Befehl in die Datei /etc/init.d/boot.local eintragen, dann werden die Grundeinstellungen beim Systemstart gesetzt.

Anscheinend muss diese Einstellung für jeden Benutzer extra gesetzt werden. Also eintragen in ~/.bashrc und ~/.profile

Datum vergleichen

$fileName=/tmp/backup_lock
date_file=$(stat -c %Y $filename)
date_jetzt=$(date +%s)
date_diff=$(expr $date_jetzt - $date_file)

Fehlerhaft codierte Dateinamen

Zum Umbenennen muss eventuell das Tool convmv nachinstalliert werden.

zypper in convmv

Befehl zum rekursiven Umbenennen aller Dateien in einem Verzeichnis.

convmv -f iso-8859-1 -t utf-8 -r --notest *

cp

  • Dateien kopieren

So kopiert man auch versteckte Dateien:

cp -dpR Quellverzeichnis/.[a-z,A-Z,0-9]* Zielverzeichnis 

oder

cp -dpR Quellverzeichnis/.[^.]* Zielverzeichnis
# .[^.] bedeutet: beliebiges Zeichen ausgenommen Punkt
  • Eine Datei verteilen auf bestimmte Verzeichnisse
for dir in `ls joomla_* -d` ; do
   cp /www/joomla_fg/administrator/components/com_weblinks/config.xml $dir/administrator/components/com_weblinks
done

ls

Dateien anzeigen. Es gibt unter Suse standardmäßig einen Aliasbefehl: dir

  • Nur Verzeichnisse anzeigen
ls -ld * | grep "^d"

lsof

Offene Dateien werden aufgelistet

rsync

Leerzeichen im Zielverzeichnis

Wenn im Zielverzeichnis Leerzeichen enthalten sind, werden diese abgeschnitten. Das kann verhindert werden durch folgende Option

--protect-args

Mehrere Dateien/Verzeichnisse excluden

  • Geschwungenen Klammern
rsync --exclude={/etc/fstab,/etc/default/grub,/boot/grub2/grub.cfg,/home,/root,/var,/srv}
  • Exclude File
rsync --exclude-from=excluded.txt
  • einzeln excluden
rsync --exclude=/etc/fstab --exclude=/etc/default/grub --exclude=/boot/grub2/grub.cfg ...

Sehr große Dateien

Rsync-Optionen

--inplace --partial

tar

  • Ein Archiv erstellen ohne Ordnerpfade
pwd=$(pwd)
cd /usr/local/bin/bak
tar cfv /www/download/bak.tar *
cd $pwd
  • Dateien in einem Archiv anzeigen
tar -tvf bak.tar
  • TAR Archiv entpacken
tar -xf bak.tar
  • GZ Archiv entpacken
cd /var/log/apache2
gunzip ./access_log-20190617.xz
tar -xf ./access_log-20190617
  • XZ Archiv entpacken

XZ Archive sind verlustfrei gepackt.

cd /var/log/apache2
unxz ./access_log-20190617.xz
tar -xf ./access_log-20190617