Linux Befehle und Erläuterungen
Die wichtigsten Linux-Befehle, die man regelmäßig benötigt.
Wir listen hier die wichtigsten Linux-Befehle auf und wie man sie anwendet.
Als IRC-Server Betreiber wirst Du regelmäßig Eggdrops oder IRCDs installieren, oft über Source -Dateien.
Daher werden wir hier eine Sammlung an Unix und Linux-Befehlen auflisten, damit Du diese schnell nachschlagen kannst. Dieser Abschnitt ist der Aufwendig, Du kannst Befehle jederzeit hinzufügen.
Es ist nicht unser Ziel ein ultimativen Linux Guide zu erstellen, da es bereits tolle Referenzen und Guides gibt, die mit viel Liebe erstellt, gepflegt und kopiert wurden.
Linux Befehle
Es gibt 19 Linux Befehle in diesem Verzeichnis, die mit dem Buchstaben C beginnen.
C
cd (Change Directory)
Wechselt das aktuelle Arbeitsverzeichnis zu einem anderen Verzeichnis. Es ist einer der grundlegendsten Befehle zur Navigation im Dateisystem.
Linux-Befehl: cd
Wechsle in das Verzeichnis /home/user/Documents mit cd /home/user/Documents
cd ..: Wechselt in das übergeordnete Verzeichnis.
cd ~: Wechselt in das Home-Verzeichnis des aktuellen Benutzers.
cd -: Wechselt in das zuletzt besuchte Verzeichnis.
cd /: Wechselt in das Root-Verzeichnis.
cd /path/to/directory: Wechselt in ein spezifisches Verzeichnis.
Handbuch für den Befehl: man cdEingereicht durch: Schutzgeist
cd (Change Directory):
Wechselt das aktuelle Arbeitsverzeichnis zu einem anderen Verzeichnis. Es ist einer der grundlegendsten Befehle zur Navigation im Dateisystem.
Linux-Befehl: cd
Anwendungsbeispiel:
Wechsle in das Verzeichnis /home/user/Documents mit cd /home/user/Documents
Weitere Befehle und Optionen:
cd ..: Wechselt in das übergeordnete Verzeichnis.
cd ~: Wechselt in das Home-Verzeichnis des aktuellen Benutzers.
cd -: Wechselt in das zuletzt besuchte Verzeichnis.
cd /: Wechselt in das Root-Verzeichnis.
cd /path/to/directory: Wechselt in ein spezifisches Verzeichnis.
Handbuch für den Befehl: man cd
chage
chage:
Ein Befehl, der verwendet wird, um die Passwort-Ablaufinformationen eines Benutzerkontos zu ändern und anzuzeigen.
Mit
Linux-Befehl:
Anwendungsbeispiel:
Zeige die aktuellen Passwort-Ablaufeinstellungen für einen Benutzer an mit
Angenommen, du betreibst einen IRC-Server unter
Beispiel: Setze das Passwort von
Dieser Befehl konfiguriert das Konto
Ähnliche Linux-Befehle:
Handbuch für den Befehl:
Eingereicht durch: SchutzgeistEin Befehl, der verwendet wird, um die Passwort-Ablaufinformationen eines Benutzerkontos zu ändern und anzuzeigen.
Mit
chage
kannst du festlegen, wie oft ein Benutzer sein Passwort ändern muss, wann das Passwort abläuft, wann der Benutzer gewarnt wird, und ob das Konto nach Ablauf des Passworts gesperrt wird.Linux-Befehl:
chage
Anwendungsbeispiel:
Zeige die aktuellen Passwort-Ablaufeinstellungen für einen Benutzer an mit
chage -l username
.Fallbeispiel im Bereich IRC (Internet Relay Chat):
Angenommen, du betreibst einen IRC-Server unter
irc.irc-mania.net
und möchtest sicherstellen, dass der Benutzer ircadmin
, der für die Verwaltung des Servers verantwortlich ist, sein Passwort regelmäßig ändert, um die Sicherheit zu gewährleisten. Mit chage
kannst du die Einstellungen für das Passwortablaufdatum und die Warnungen vor dem Ablaufdatum konfigurieren.Beispiel: Setze das Passwort von
ircadmin
so, dass es alle 90 Tage geändert werden muss, und warne den Benutzer 7 Tage vor dem Ablauf:bash
sudo chage -M 90 -W 7 ircadmin
Dieser Befehl konfiguriert das Konto
ircadmin
so, dass das Passwort alle 90 Tage geändert werden muss, und gibt eine Warnung 7 Tage vor Ablauf des Passworts aus. Dies hilft sicherzustellen, dass das Konto, das für die Verwaltung des IRC-Servers irc.irc-mania.net
verantwortlich ist, regelmäßig aktualisiert wird und somit die Sicherheit des Servers erhöht wird.Ähnliche Linux-Befehle:
passwd
: Ändert das Passwort eines Benutzers und kann auch verwendet werden, um das Passwort-Ablaufdatum zu setzen.usermod
: Verwendet, um Benutzerkontoinformationen zu ändern, einschließlich der Option, Passwort-Ablaufdaten festzulegen.useradd
: Fügt einen neuen Benutzer hinzu und kann Passwort-Einstellungen direkt beim Erstellen des Kontos festlegen.chpasswd
: Verwendet, um mehrere Benutzerpasswörter im Batch zu ändern.
Schalteroptionen und ihre Funktionen:
chage -l username
: Zeigt die aktuellen Passwort-Ablaufeinstellungen für den angegebenen Benutzer an.chage -M days username
: Setzt die maximale Anzahl von Tagen, die ein Passwort gültig ist, bevor es geändert werden muss.chage -m days username
: Setzt die minimale Anzahl von Tagen, die zwischen Passwortänderungen liegen müssen.chage -W days username
: Setzt die Anzahl von Tagen, bevor eine Warnung über das Ablaufen des Passworts ausgegeben wird.chage -E date username
: Setzt das Datum, an dem das Benutzerkonto abläuft und gesperrt wird.chage -I days username
: Setzt die Anzahl von Tagen nach Ablauf des Passworts, nach denen das Konto deaktiviert wird.
MAN-Überschriften:
- NAME
Beschreibung des Befehls. - SYNOPSIS
Die grundlegende Syntax für die Verwendung vonchage
. - DESCRIPTION
Detaillierte Beschreibung, was der Befehl tut. - OPTIONS
Beschreibung aller verfügbaren Schalteroptionen. - FILES
Hinweise auf relevante Dateien wie/etc/shadow
, die vonchage
verwendet werden. - SEE ALSO
Verweise auf verwandte Befehle und Dokumentationen, z.B.passwd
,usermod
. - AUTHOR
Informationen über den Autor des Befehls. - BUGS
Informationen zu bekannten Fehlern und deren Behebung.
Handbuch für den Befehl:
man chage
chmod
In Unix-ähnlichen Betriebssystemen legt der Befehl chmod die Berechtigungen für Dateien oder Verzeichnisse fest.
In Bezug auf USB-Ports wird
Beispiele für die Nutzung von
Weitere Anwendungen von
Die Berechtigungen in Unix- und Unix-ähnlichen Systemen wie Linux, die mit dem Befehl
Diese Zahlen werden oft in einer dreistelligen Kombination verwendet, wobei jede Stelle für unterschiedliche Benutzergruppen steht: der Eigentümer (user), die Gruppe (group) und andere (others). Zum Beispiel würde
Dateiname der Berechtigungen für chmod- Optionen
Angenommen , Sie sind Eigentümer einer Datei mit dem Namen myfile und möchten ihre Berechtigungen so festlegen , dass:
- die U ser Dose r ead, w rite, und e x ecute es;
- Mitglieder Ihrer g roup kann r ead und e x ecute es; und
- o thers nur r es ead.
chmod u = rwx, g = rx, o = r meineDatei
Befehl:
chmod 774 meineDatei
Allerdings kann chmod auch für USB-Ports verwenden.
In Bezug auf USB-Ports wird
chmod
oft verwendet, um die Zugriffsrechte für Gerätedateien im /dev
-Verzeichnis zu ändern, was den Zugriff auf USB-Geräte beeinflussen kann.Beispiele für die Nutzung von chmod
bei USB-Ports
- Ändern der Zugriffsrechte für ein USB-Gerät: Angenommen, ein USB-Gerät ist unter
/dev/ttyUSB0
gelistet. Um allen Benutzern Lese- und Schreibzugriff zu gewähren, würden Sie folgenden Befehl verwenden:sudo chmod 666 /dev/ttyUSB0
. - Einschränkung des Zugriffs: Um den Zugriff auf das Gerät auf den Eigentümer zu beschränken, würden Sie den Befehl
sudo chmod 600 /dev/ttyUSB0
verwenden.
Weitere Anwendungen von chmod
außerhalb von Datei- und USB-Port-Administration
- Script-Ausführbarkeit: Um ein Shell-Skript ausführbar zu machen, können Sie
chmod +x skript.sh
verwenden. Dies erlaubt allen Benutzern, das Skript auszuführen. - Sicherheit von privaten Schlüsseln: Bei der Verwendung von SSH-Schlüsseln ist es wichtig, die Dateiberechtigungen richtig zu setzen. Zum Beispiel sollte ein privater Schlüssel (
id_rsa
) mitchmod 600 id_rsa
geschützt werden, um Lese- und Schreibzugriff nur für den Eigentümer zu erlauben. - Webserver-Dateiberechtigungen: Bei der Verwaltung eines Webservers müssen Sie möglicherweise die Berechtigungen von Dateien und Verzeichnissen anpassen, um die Sicherheit zu erhöhen und den korrekten Zugriff zu gewährleisten. Zum Beispiel könnten Sie
chmod 755 /var/www/html
verwenden, um das Verzeichnis für den Eigentümer beschreibbar und für alle anderen lesbar zu machen. - Dateiberechtigungen für gemeinsam genutzte Ressourcen: In einer Umgebung, in der mehrere Benutzer auf gemeinsame Ressourcen zugreifen, können Sie
chmod
verwenden, um zu steuern, wer diese Dateien lesen, schreiben oder ausführen kann. Beispielsweise ermöglichtchmod 774 datei
dem Eigentümer und der Gruppe vollen Zugriff, während andere Benutzer sie nur lesen können.
Die Berechtigungen in Unix- und Unix-ähnlichen Systemen wie Linux, die mit dem Befehl
chmod
(change mode) gesetzt werden, sind in einem Oktalsystem (Basis 8) kodiert, das von 0 bis 7 reicht. Jede Ziffer in diesem System repräsentiert eine unterschiedliche Kombination von Zugriffsrechten. Die Berechtigungen beziehen sich auf drei Arten von Zugriffen: Lesen (read), Schreiben (write) und Ausführen (execute). Hier ist die Bedeutung jeder Zahl von 0 bis 7:- 0: Keine Berechtigungen. Dies bedeutet, dass weder der Eigentümer noch die Gruppe noch andere Benutzer irgendeinen Zugriff (Lesen, Schreiben, Ausführen) auf die Datei oder das Verzeichnis haben.
- 1: Ausführungsberechtigung. Erlaubt das Ausführen einer Datei (z. B. ein Programm oder ein Skript), aber weder Lesen noch Schreiben.
- 2: Schreibberechtigung. Erlaubt das Schreiben oder Modifizieren einer Datei, aber weder Lesen noch Ausführen.
- 3: Schreib- und Ausführungsberechtigungen. Erlaubt das Schreiben/Modifizieren und Ausführen einer Datei, aber kein Lesen.
- 4: Leseberechtigung. Erlaubt das Lesen einer Datei oder das Auflisten eines Verzeichnisses, aber weder Schreiben noch Ausführen.
- 5: Lese- und Ausführungsberechtigungen. Erlaubt das Lesen und Ausführen einer Datei oder das Auflisten eines Verzeichnisses, aber kein Schreiben.
- 6: Lese- und Schreibberechtigungen. Erlaubt das Lesen und Schreiben/Modifizieren einer Datei oder das Auflisten und Ändern eines Verzeichnisses, aber kein Ausführen.
- 7: Vollzugriff. Erlaubt Lesen, Schreiben/Modifizieren und Ausführen einer Datei oder das Auflisten, Ändern und Ausführen von Operationen in einem Verzeichnis.
Diese Zahlen werden oft in einer dreistelligen Kombination verwendet, wobei jede Stelle für unterschiedliche Benutzergruppen steht: der Eigentümer (user), die Gruppe (group) und andere (others). Zum Beispiel würde
chmod 754 datei
dem Eigentümer vollen Zugriff (7), der Gruppe Lesen und Ausführen (5) und anderen nur Lesen (4) gewähren.chmod (Change Mode)
Ändert die Dateiberechtigungen für Dateien und Verzeichnisse. Berechtigungen können für den Besitzer, die Gruppe und andere festgelegt werden.
Linux-Befehl: chmod Anwendungsbeispiel:
Setze die Datei-Berechtigungen auf lesbar, schreibbar und ausführbar für den Besitzer mit chmod 700 filename.
chmod +x filename: Macht eine Datei ausführbar.
chmod 755 filename: Setzt die Berechtigungen auf lesbar und ausführbar für alle, schreibbar nur für den Besitzer.
chmod -R 644 directory/: Setzt rekursiv die Berechtigungen für alle Dateien in einem Verzeichnis auf lesbar und schreibbar für den Besitzer, lesbar für andere.
chmod u+x filename: Fügt die Ausführungsberechtigung nur für den Besitzer (user) hinzu.
Handbuch für den Befehl: man chmodEingereicht durch: Schutzgeist
chmod (Change Mode)
Ändert die Dateiberechtigungen für Dateien und Verzeichnisse. Berechtigungen können für den Besitzer, die Gruppe und andere festgelegt werden.
Linux-Befehl: chmod Anwendungsbeispiel:
Setze die Datei-Berechtigungen auf lesbar, schreibbar und ausführbar für den Besitzer mit chmod 700 filename.
Weitere Befehle und Optionen:
chmod +x filename: Macht eine Datei ausführbar.
chmod 755 filename: Setzt die Berechtigungen auf lesbar und ausführbar für alle, schreibbar nur für den Besitzer.
chmod -R 644 directory/: Setzt rekursiv die Berechtigungen für alle Dateien in einem Verzeichnis auf lesbar und schreibbar für den Besitzer, lesbar für andere.
chmod u+x filename: Fügt die Ausführungsberechtigung nur für den Besitzer (user) hinzu.
Handbuch für den Befehl: man chmod
chown
chown - Ändert den Eigentümer und die Gruppe von Dateien und Verzeichnissen.
Beispiel: chown meinbenutzer:meinegruppe meine_datei.txt ändert den Eigentümer der Datei auf meinbenutzer und die Gruppe auf meinegruppe.
Ebenfalls eines der wichtigsten Befehle.
Gerade wenn man mit nginx arbeitet und plötzlich zahlreiche Fehlermeldungen erhält 😉
Beispiel: chown meinbenutzer:meinegruppe meine_datei.txt ändert den Eigentümer der Datei auf meinbenutzer und die Gruppe auf meinegruppe.
Ebenfalls eines der wichtigsten Befehle.
Gerade wenn man mit nginx arbeitet und plötzlich zahlreiche Fehlermeldungen erhält 😉
chronyc
Ein Kommandozeilenprogramm, das zur Interaktion mit dem
Linux-Befehl:
Anwendungsbeispiel:
Zeige den Status des
Angenommen, du betreibst einen IRC-Server unter
Beispiel: Überprüfen des Synchronisationsstatus mit dem Befehl
Dieser Befehl zeigt den aktuellen Status der Zeitsynchronisation an, einschließlich des verwendeten Zeitservers, der Zeitdifferenz und der Genauigkeit der Synchronisation. Dies hilft sicherzustellen, dass der IRC-Server
Ähnliche Linux-Befehle:
Schalteroptionen und wichtige Befehle innerhalb von
Handbuch für den Befehl:Eingereicht durch: Schutzgeist
chronyc:
Ein Kommandozeilenprogramm, das zur Interaktion mit dem
chronyd
-Daemon verwendet wird, der für die Synchronisation der Systemzeit mit Netzwerkzeitservern (NTP-Servern) verantwortlich ist. chronyc
ermöglicht es dir, den Status von chronyd
abzufragen, seine Konfiguration zu ändern, Statistiken zu überprüfen und andere administrative Aufgaben durchzuführen.Linux-Befehl:
chronyc
Anwendungsbeispiel:
Zeige den Status des
chronyd
-Daemons an mit chronyc tracking
.Fallbeispiel im Bereich IRC (Internet Relay Chat):
Angenommen, du betreibst einen IRC-Server unter
irc.irc-mania.net
, bei dem genaue Zeitstempel entscheidend sind. Du verwendest chronyd
, um sicherzustellen, dass die Systemzeit immer synchronisiert ist. Mit chronyc
kannst du den Status der Zeitserververbindungen überprüfen und sicherstellen, dass die Zeit korrekt synchronisiert wird.Beispiel: Überprüfen des Synchronisationsstatus mit dem Befehl
tracking
:bash
sudo chronyc tracking
Dieser Befehl zeigt den aktuellen Status der Zeitsynchronisation an, einschließlich des verwendeten Zeitservers, der Zeitdifferenz und der Genauigkeit der Synchronisation. Dies hilft sicherzustellen, dass der IRC-Server
irc.irc-mania.net
stets die korrekte Zeit verwendet.Ähnliche Linux-Befehle:
ntpd
: Ein alternativer Daemon zur Zeitsynchronisation, der in vielen älteren Systemen verwendet wird.timedatectl
: Verwaltet Systemzeit, Datum und Zeitzone, einschließlich der NTP-Synchronisation.hwclock
: Verwendet zur Verwaltung der Hardware-Uhr, in Verbindung mitchronyc
zur Überprüfung der Synchronisation.ntpdate
: Führt eine einmalige Zeitsynchronisation mit einem NTP-Server durch.
Schalteroptionen und wichtige Befehle innerhalb von chronyc
:
chronyc tracking
: Zeigt detaillierte Informationen zur aktuellen Zeitsynchronisation, einschließlich der Differenz zwischen Systemzeit und Referenzzeit.chronyc sources
: Listet die NTP-Server auf, diechronyd
verwendet, und zeigt deren Status an.chronyc sourcestats
: Zeigt detaillierte Statistiken über die Leistung und Genauigkeit der verwendeten NTP-Quellen.chronyc makestep
: Erzwingt eine sofortige Anpassung der Systemzeit, wenn die Zeitdifferenz zu groß ist.chronyc ntpdata
: Zeigt detaillierte Informationen über die NTP-Pakete, die empfangen wurden.chronyc settime
: Setzt die Zeit manuell auf einen bestimmten Wert (normalerweise nicht empfohlen, dachronyd
die Zeit automatisch synchronisieren sollte).chronyc reload sources
: Lädt die Liste der Zeitquellen neu, wenn die Konfiguration geändert wurde.chronyc quit
: Beendet diechronyc
-Sitzung.
Wichtige Hinweise:
- Echtzeitinteraktion:
chronyc
ist besonders nützlich für die Echtzeitüberwachung und -steuerung vonchronyd
, was es zu einem wertvollen Werkzeug in der Systemadministration macht.
MAN-Überschriften:
- NAME
Beschreibung des Befehls. - SYNOPSIS
Die grundlegende Syntax für die Verwendung vonchronyc
. - DESCRIPTION
Detaillierte Beschreibung, was der Befehl tut und wie er mitchronyd
interagiert. - COMMANDS
Beschreibung der wichtigsten Befehle, die innerhalb vonchronyc
verwendet werden können. - SEE ALSO
Verweise auf verwandte Befehle und Dokumentationen, z.B.chronyd
,timedatectl
,ntpd
. - AUTHOR
Informationen über den Autor des Befehls. - BUGS
Informationen zu bekannten Fehlern und deren Behebung.
Handbuch für den Befehl:
man chronyc
chsh -s:
Ein Befehl, der verwendet wird, um die Standard-Shell für den aktuellen Benutzer oder einen anderen Benutzer zu ändern. Die Option
Linux-Befehl:
Anwendungsbeispiel:
Ändere die Standard-Shell des aktuellen Benutzers auf
Angenommen, du betreibst einen IRC-Server unter
Beispiel: Ändere die Standard-Shell für den Benutzer
Mit diesem Befehl wird die Standard-Shell für
Handbuch für den Befehl:Eingereicht durch: schutzgeist
chsh -s /bin/false
Ein Befehl, der verwendet wird, um die Standard-Shell für den aktuellen Benutzer oder einen anderen Benutzer zu ändern. Die Option
-s
ermöglicht es, eine spezifische Shell als neue Anmelde-Shell festzulegen.Linux-Befehl:
chsh -s
Anwendungsbeispiel:
Ändere die Standard-Shell des aktuellen Benutzers auf
/bin/zsh
mit chsh -s /bin/zsh
.Fallbeispiel im Bereich IRC (Internet Relay Chat):
Angenommen, du betreibst einen IRC-Server unter
irc.irc-mania.net
und möchtest die Standard-Shell des Kontos, das für die Verwaltung des IRC-Servers verwendet wird, ändern. Wenn du beispielsweise von der Bash-Shell zur Zsh-Shell wechseln möchtest, um von den erweiterten Funktionen der Zsh zu profitieren, kannst du dies mit chsh -s
tun.Beispiel: Ändere die Standard-Shell für den Benutzer
ircadmin
auf /bin/zsh
:sudo chsh -s /bin/zsh ircadmin
Mit diesem Befehl wird die Standard-Shell für
ircadmin
, der möglicherweise für die Verwaltung des IRC-Servers irc.irc-mania.net
zuständig ist, auf Zsh geändert. Dies kann nützlich sein, wenn du Zsh bevorzugst, weil sie erweiterte Funktionen wie bessere Autovervollständigung und Themen bietet.Ähnliche Linux-Befehle:
echo $SHELL
: Zeigt die aktuell verwendete Shell des Benutzers an.cat /etc/shells
: Zeigt eine Liste aller verfügbaren Shells auf dem System an.usermod -s /path/to/shell username
: Ändert die Shell eines bestimmten Benutzers.passwd
: Wird zum Ändern des Benutzerpassworts verwendet; oft zusammen mitchsh
verwendet, um Benutzeranmeldedaten zu verwalten.
Schalteroptionen und ihre Funktionen:
chsh -s /path/to/shell [username]
: Ändert die Standard-Shell für den angegebenen Benutzer. Wenn kein Benutzername angegeben wird, wird die Shell für den aktuell angemeldeten Benutzer geändert.
MAN-Überschriften:
- NAME
Beschreibung des Befehls. - SYNOPSIS
Die grundlegende Syntax für die Verwendung vonchsh
. - DESCRIPTION
Detaillierte Beschreibung, was der Befehl tut. - OPTIONS
Beschreibung aller verfügbaren Schalteroptionen. - FILES
Hinweise auf Dateien, die vonchsh
verwendet werden (z.B./etc/passwd
). - SEE ALSO
Verweise auf verwandte Befehle und Dokumentationen. - AUTHOR
Informationen über den Autor des Befehls. - BUGS
Informationen zu bekannten Fehlern und deren Behebung.
Handbuch für den Befehl:
man chsh
Clear
Der Clear -Befehl räumt Dein Terminal auf.
Ich nutze diesen relativ selten, wenn man sich aber viele Logfiles via "Cat" anschaut, dann dient es der Übersicht
Ich nutze diesen relativ selten, wenn man sich aber viele Logfiles via "Cat" anschaut, dann dient es der Übersicht
cp
cp = Copy-Befehl!
Der Copy-Befehl ist wohl einer der wichtigsten Befehle.
Gerade wenn man Sicherungsdateien wiederherstellen oder anlegen möchte
Beispiel :
cp config.php /home/schutzgeist/backupdateien/
Sofern Du Dich im selben Verzeichnis befindest.
Alternativ kannst Du überall den kompletten Pfad angeben
cp /home/schutzgeist/config.php /home/schutzgeist/backupdateien/
Mehrere Dateien kopieren ?
Kein Problem
cp datei1.conf datei2.conf datei3.con /home/zielordner/
Du kannst auch mit Platzhaltern etc arbeiten
cp * /home/zielordner
würde alle Datien im Ordner in den Zielordner kopieren.
Der CP-Befehl hat noch weitere Optionen.
Willst Du auch alle Unterverzeichnisse kopieren, so kannst Du den Befehl mit der Option -R (rekursiv) kopieren..
cp * -R /home/zielordner
Der Befehl
cp --help
zeigt Dir alle möglichen Optionen an:
cp --help
Aufruf: cp [OPTION]... [-T] QUELLE ZIEL
oder: cp [OPTION]... QUELLE... VERZEICHNIS
oder: cp [OPTION]... -t VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehreren QUELLE(n) in VERZEICHNIS
Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
-a, --archive genau wie -dpR --preserve=all
--attributes-only nicht die Dateidaten, sondern nur die Attribute
kopieren
--backup[=KONTROLLE] eine Sicherung existierender Zieldateien erzeugen
-b wie --backup, akzeptiert aber kein Argument
--copy-contents wenn rekursiv, Inhalt von Spezialdateien kopieren
-d genau wie --no-dereference --preserve=links
-f, --force wenn existierende Zieldatei nicht geöffnet werden
kann, löschen und erneut versuchen (wird bei
Verwendung der Option -n ignoriert)
-i, --interactive vor einem Überschreiben nachfragen (überstimmt
eine vorangehende Option -n)
-H symbolischen Verknüpfungen, die auf der
Kommandozeile als QUELLE angegeben sind,
folgen
-l, --link Dateien verknüpfen, statt sie zu kopieren
-L, --dereference symbolischen Verknüpfungen in QUELLE immer folgen
-n, --no-clobber keine existierenden Dateien überschreiben
(übersteuert eine vorangehende Option -i)
-P, --no-dereference symbolischen Verknüpfungen in QUELLE nie folgen
-p genau wie --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] angegebene Datei‐Attribute erhalten wenn möglich
(Voreinstellung: mode,ownership,timestamps;
weitere Attribute: context, links, xattr, all)
-c deprecated, same as --preserve=context
--no-preserve=ATTR_LIST Angegebene Attribute nicht erhalten
--parents kompletten Quell‐Pfad an VERZEICHNIS anhängen
-R, -r, --recursive Verzeichnisse rekursiv kopieren
--reflink[=WANN] Klon/CoW Kopien kontrollieren. Siehe unten
--remove-destination jede Zieldatei vor dem Versuch, sie zu öffnen,
löschen (im Gegensatz zu --force)
--sparse=WANN Erstellung von Dateien mit Löchern (s. u.) steuern
--strip-trailing-slashes Schrägstriche vom Ende jedes QUELLE‐Arguments
entfernen
-s, --symbolic-link symbolische Verknüpfungen erzeugen anstatt
zu kopieren
-S, --suffix=ENDUNG Standard-Sicherungs‐Dateiendung ändern
-t, --target-directory=VERZ alle QUELLE‐Argumente in VERZ kopieren
-T, --no-target-directory ZIEL als normale Datei behandeln
-u, --update nur kopieren, wenn die QUELL‐Datei neuer ist
als die Zieldatei oder die Zieldatei nicht
existiert
-v, --verbose durchgeführte Tätigkeiten erklären
-x, --one-file-system in diesem Dateisystem verbleiben
-Z den SELinux-Sicherheitskontext der Zieldatei
auf den Standardtyp setzen
--context[=KTXT] Wie -Z, oder, wenn KTXT angegeben wurde, den
SELinux- oder SMACK-Sicherheitskontext auf
KTXT setzen
--help diese Hilfe anzeigen und beenden
--version Versionsinformation anzeigen und beenden
Standardmäßig werden QUELL‐Dateien mit Löchern („sparse“) durch eine einfache
Heuristik erkannt und die korrespondierenden ZIEL‐Dateien werden ebenfalls
„sparse“ gemacht. Dieses Verhalten wird mit --sparse=auto ausgewählt. Geben
Sie --sparse=always an, um „sparse“‐ZIEL‐Dateien zu erzeugen, wenn die
QUELL-Datei eine ausreichend lange Sequenz aus Null‐Bytes enthält.
Verwenden Sie --sparse=never, um das Erzeugen von „sparse“‐Dateien zu
verhindern.
Wird --reflink[=always] angegeben, wird eine leichtgewichtige Kopie gemacht,
bei der die Datenblöcke nur dann kopiert werden, wenn sie sich geändert haben.
Wenn dies nicht möglich ist, scheitert das Kopieren. Wurde --reflink=auto
angegeben, wird stattdessen eine normale Kopie angelegt.
Die Endung für Sicherheitskopien ist „~“, außer wenn sie mittels --suffix
oder SIMPLE_BACKUP_SUFFIX explizit festgelegt wurde. Die Methode der
Versionskontrolle kann mit --backup oder Umgebungsvariable VERSION_CONTROL
festgelegt werden. Mögliche Werte sind:
none, off Niemals Sicherung erzeugen (selbst wenn --backup
angegeben wurde)
numbered, t Erzeugen von nummerierten Sicherheitskopien
existing, nil Nummeriert wenn nummerierte Backups existieren, sonst einfach.
simple, never Immer einfache Sicherheitskopien erzeugen
Als Spezialfall erzeugt cp eine Sicherheitskopie von QUELLE, wenn die Optionen
„force“ und „backup“ angegeben wurden und QUELLE und ZIEL der gleiche Name für
eine vorhandene reguläre Datei sind.
Der Copy-Befehl ist wohl einer der wichtigsten Befehle.
Gerade wenn man Sicherungsdateien wiederherstellen oder anlegen möchte
cp [Originalpfad] [Zielpfad]
Beispiel :
cp config.php /home/schutzgeist/backupdateien/
Sofern Du Dich im selben Verzeichnis befindest.
Alternativ kannst Du überall den kompletten Pfad angeben
cp /home/schutzgeist/config.php /home/schutzgeist/backupdateien/
Mehrere Dateien kopieren ?
Kein Problem
cp datei1.conf datei2.conf datei3.con /home/zielordner/
Du kannst auch mit Platzhaltern etc arbeiten
cp * /home/zielordner
würde alle Datien im Ordner in den Zielordner kopieren.
Der CP-Befehl hat noch weitere Optionen.
Willst Du auch alle Unterverzeichnisse kopieren, so kannst Du den Befehl mit der Option -R (rekursiv) kopieren..
cp * -R /home/zielordner
Der Befehl
cp --help
zeigt Dir alle möglichen Optionen an:
cp --help
Aufruf: cp [OPTION]... [-T] QUELLE ZIEL
oder: cp [OPTION]... QUELLE... VERZEICHNIS
oder: cp [OPTION]... -t VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehreren QUELLE(n) in VERZEICHNIS
Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
-a, --archive genau wie -dpR --preserve=all
--attributes-only nicht die Dateidaten, sondern nur die Attribute
kopieren
--backup[=KONTROLLE] eine Sicherung existierender Zieldateien erzeugen
-b wie --backup, akzeptiert aber kein Argument
--copy-contents wenn rekursiv, Inhalt von Spezialdateien kopieren
-d genau wie --no-dereference --preserve=links
-f, --force wenn existierende Zieldatei nicht geöffnet werden
kann, löschen und erneut versuchen (wird bei
Verwendung der Option -n ignoriert)
-i, --interactive vor einem Überschreiben nachfragen (überstimmt
eine vorangehende Option -n)
-H symbolischen Verknüpfungen, die auf der
Kommandozeile als QUELLE angegeben sind,
folgen
-l, --link Dateien verknüpfen, statt sie zu kopieren
-L, --dereference symbolischen Verknüpfungen in QUELLE immer folgen
-n, --no-clobber keine existierenden Dateien überschreiben
(übersteuert eine vorangehende Option -i)
-P, --no-dereference symbolischen Verknüpfungen in QUELLE nie folgen
-p genau wie --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] angegebene Datei‐Attribute erhalten wenn möglich
(Voreinstellung: mode,ownership,timestamps;
weitere Attribute: context, links, xattr, all)
-c deprecated, same as --preserve=context
--no-preserve=ATTR_LIST Angegebene Attribute nicht erhalten
--parents kompletten Quell‐Pfad an VERZEICHNIS anhängen
-R, -r, --recursive Verzeichnisse rekursiv kopieren
--reflink[=WANN] Klon/CoW Kopien kontrollieren. Siehe unten
--remove-destination jede Zieldatei vor dem Versuch, sie zu öffnen,
löschen (im Gegensatz zu --force)
--sparse=WANN Erstellung von Dateien mit Löchern (s. u.) steuern
--strip-trailing-slashes Schrägstriche vom Ende jedes QUELLE‐Arguments
entfernen
-s, --symbolic-link symbolische Verknüpfungen erzeugen anstatt
zu kopieren
-S, --suffix=ENDUNG Standard-Sicherungs‐Dateiendung ändern
-t, --target-directory=VERZ alle QUELLE‐Argumente in VERZ kopieren
-T, --no-target-directory ZIEL als normale Datei behandeln
-u, --update nur kopieren, wenn die QUELL‐Datei neuer ist
als die Zieldatei oder die Zieldatei nicht
existiert
-v, --verbose durchgeführte Tätigkeiten erklären
-x, --one-file-system in diesem Dateisystem verbleiben
-Z den SELinux-Sicherheitskontext der Zieldatei
auf den Standardtyp setzen
--context[=KTXT] Wie -Z, oder, wenn KTXT angegeben wurde, den
SELinux- oder SMACK-Sicherheitskontext auf
KTXT setzen
--help diese Hilfe anzeigen und beenden
--version Versionsinformation anzeigen und beenden
Standardmäßig werden QUELL‐Dateien mit Löchern („sparse“) durch eine einfache
Heuristik erkannt und die korrespondierenden ZIEL‐Dateien werden ebenfalls
„sparse“ gemacht. Dieses Verhalten wird mit --sparse=auto ausgewählt. Geben
Sie --sparse=always an, um „sparse“‐ZIEL‐Dateien zu erzeugen, wenn die
QUELL-Datei eine ausreichend lange Sequenz aus Null‐Bytes enthält.
Verwenden Sie --sparse=never, um das Erzeugen von „sparse“‐Dateien zu
verhindern.
Wird --reflink[=always] angegeben, wird eine leichtgewichtige Kopie gemacht,
bei der die Datenblöcke nur dann kopiert werden, wenn sie sich geändert haben.
Wenn dies nicht möglich ist, scheitert das Kopieren. Wurde --reflink=auto
angegeben, wird stattdessen eine normale Kopie angelegt.
Die Endung für Sicherheitskopien ist „~“, außer wenn sie mittels --suffix
oder SIMPLE_BACKUP_SUFFIX explizit festgelegt wurde. Die Methode der
Versionskontrolle kann mit --backup oder Umgebungsvariable VERSION_CONTROL
festgelegt werden. Mögliche Werte sind:
none, off Niemals Sicherung erzeugen (selbst wenn --backup
angegeben wurde)
numbered, t Erzeugen von nummerierten Sicherheitskopien
existing, nil Nummeriert wenn nummerierte Backups existieren, sonst einfach.
simple, never Immer einfache Sicherheitskopien erzeugen
Als Spezialfall erzeugt cp eine Sicherheitskopie von QUELLE, wenn die Optionen
„force“ und „backup“ angegeben wurden und QUELLE und ZIEL der gleiche Name für
eine vorhandene reguläre Datei sind.
cpio
cpio --help
Aufruf: cpio [OPTION...] [Zielverzeichnis]
GNU cpio kopiert Dateien in und aus Archiven
Beipiele:
# In einer Namensliste benannte Dateien ins Archiv kopieren
cpio -o < Namensliste [> Archiv]
# Dateien aus dem Archiv entpacken
cpio -i [< Archiv]
# In einer Namensliste benannte Dateien in Zielverzeichnis kopieren
cpio -p Zielverzeichnis < Namensliste
Haupt-Operationsmodus
-i, --extract Dateien aus einem Archiv entpacken (im
Hineinkopiermodus ausführen)
-o, --create Das Archiv anlegen (im Herauskopiermodus
ausführen)
-p, --pass-through Im Durchlaufmodus ausführen
-t, --list Ein Inhaltsverzeichnis der Eingabe anzeigen
In jedem Modus mögliche Operatoren:
--block-size=BLOCKGRÖßE I/O-Blockgröße auf BLOCKGRÖßE * 512 Bytes
setzen
-B I/O-Blockgröße auf 5120 Bytes setzen
-c Identical to "-H newc", use the new (SVR4)
portable format. If you wish the old portable
(ASCII) archive format, use "-H odc" instead.
-C, --io-size=NUMMER Die I/O-Blockgröße auf die angegebene ANZAHL an
Bytes festlegen
-D, --directory=VERZ Ins Verzeichnis VERZ wechseln
--force-local Archivdatei ist lokal, obwohl deren Name
Doppelpunkte enthält
-H, --format=FORMAT Angegebenes Archiv-FORMAT verwenden
--quiet Anzahl der kopierten Blöcke nicht ausgeben
-R, --owner=[BENUTZER][:.][GRUPPE]
Die Eigentumsrechte aller erzeugten Dateien auf
die angegebenen Werte für BENUTZER und/oder
GRUPPE setzen
-v, --verbose Verarbeitete Dateien ausführlich listen
-V, --dot Einen ».« für jede verarbeitete Datei ausgeben
-W, --warning=FLAG Warnanzeige. Aktuelles FLAG ist eines von
»none«, »truncate«, »all«. Mehrfach
angegebene Optionen werden gespeichert.
Im Hineinkopier- und Herauskopier-Modus gültige Operatoren
-F, --file=[[BENUTZER@]HOST:]DATEINAME
Diesen DATEINAMEN anstelle der Standardeingabe
oder -ausgabe verwenden. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
-M, --message=ZEICHENKETTE ZEICHENKETTE ausgeben, wenn des Ende des
Datenträgers oder Sicherungsmediums erreicht ist
--rsh-command=BEFEHL Statt »rsh« den BEFEHL benutzen
Nur im Hineinkopiermodus mögliche Operatoren:
-b, --swap Sowohl »Halfwords« als auch Bytes der
»Halfwords« in den Daten vertauschen.
Äquivalent zu -sS
-f, --nonmatching Nur Dateien kopieren, denen keines der angegegeben
Muster entspricht
-I [[BENUTZER@]HOST:]DATEINAME Anstelle der Standardeingabe zu verwendender
Name der Archivdatei. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
-n, --numeric-uid-gid In der ausführlichen Inhaltstabelle UID und GID
numerisch anzeigen
-r, --rename Dateien interaktiv umbenennen
-s, --swap-bytes Die Bytes jedes »Halfwords« in den Dateien
vertauschen
-S, --swap-halfwords Die »Halfwords« jedes Worts (4 Bytes) in den
Dateien vertauschen
--to-stdout Dateien auf die Standardausgabe entpacken
-E, --pattern-file=DATEI Zusätzliche Muster aus DATEI lesen, die Namen zu
entpackender Dateien enthalten
--only-verify-crc When reading a CRC format archive, only verify the
checksum of each file in the archive, don't
actually extract the files
Nur im Herauskopiermodus mögliche Operatoren:
-A, --append Dateien an ein existierendes Archiv anfügen
--device-independent, --reproducible
Geräteunabhängige (reproduzierbare) Archive
erzeugen
--ignore-devno Gerätenummern nicht speichern
-O [[BENUTZER@]HOST:]DATEINAME Anstelle der Standardausgabe zu verwendender
Name der Archivdatei. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
--renumber-inodes Inodes neu nummerieren
Nur im Durchlaufmodus mögliche Operatoren:
-l, --link Dateien verknüpfen anstatt diese zu kopieren,
wenn möglich
Im Hineinkopier- und Herauskopiermodus gültige Operatoren:
--absolute-filenames Dateisystempräfixe nicht aus den Dateinamen
entfernen
--no-absolute-filenames Alle Dateien relativ zum aktuellen Verzeichnis
anlegen
Im Herauskopier- und Durchlaufmodus gültige Operatoren:
-0, --null Dateinamen in der Liste werden von einem
Null-Zeichen anstelle eines Zeilenumbruchs beendet
-a, --reset-access-time Zugriffszeiten der Dateien nach dem Lesen
zurücksetzen
-L, --dereference Symbolische Verknüpfungen dereferenzieren
(Zieldateien anstelle der Verknüpfungen
kopieren)
Im Hineinkopier- und Durchlaufmodus gültige Operatoren:
-d, --make-directories Übergeordnete Verzeichnisse anlegen, falls
nötig
-m, --preserve-modification-time
Letze Änderungszeiten beim Erstellen von Dateien
behalten
--no-preserve-owner Die Eigentumsverhältnisse der Dateien nicht
ändern
--sparse Dateien mit großen Null-Blöcken als
Sparse-Dateien schreiben
-u, --unconditional Alle Dateien bedingungslos ersetzen
-?, --help Diese Hilfeliste ausgeben
--usage Eine kurze Aufrufmeldung ausgeben
--version Programmversion ausgeben
Notwendige oder optionale Argumente für lange Optionen sind ebenso notwendig
oder optional für die entsprechenden kurzen Optionen.
Aufruf: cpio [OPTION...] [Zielverzeichnis]
GNU cpio kopiert Dateien in und aus Archiven
Beipiele:
# In einer Namensliste benannte Dateien ins Archiv kopieren
cpio -o < Namensliste [> Archiv]
# Dateien aus dem Archiv entpacken
cpio -i [< Archiv]
# In einer Namensliste benannte Dateien in Zielverzeichnis kopieren
cpio -p Zielverzeichnis < Namensliste
Haupt-Operationsmodus
-i, --extract Dateien aus einem Archiv entpacken (im
Hineinkopiermodus ausführen)
-o, --create Das Archiv anlegen (im Herauskopiermodus
ausführen)
-p, --pass-through Im Durchlaufmodus ausführen
-t, --list Ein Inhaltsverzeichnis der Eingabe anzeigen
In jedem Modus mögliche Operatoren:
--block-size=BLOCKGRÖßE I/O-Blockgröße auf BLOCKGRÖßE * 512 Bytes
setzen
-B I/O-Blockgröße auf 5120 Bytes setzen
-c Identical to "-H newc", use the new (SVR4)
portable format. If you wish the old portable
(ASCII) archive format, use "-H odc" instead.
-C, --io-size=NUMMER Die I/O-Blockgröße auf die angegebene ANZAHL an
Bytes festlegen
-D, --directory=VERZ Ins Verzeichnis VERZ wechseln
--force-local Archivdatei ist lokal, obwohl deren Name
Doppelpunkte enthält
-H, --format=FORMAT Angegebenes Archiv-FORMAT verwenden
--quiet Anzahl der kopierten Blöcke nicht ausgeben
-R, --owner=[BENUTZER][:.][GRUPPE]
Die Eigentumsrechte aller erzeugten Dateien auf
die angegebenen Werte für BENUTZER und/oder
GRUPPE setzen
-v, --verbose Verarbeitete Dateien ausführlich listen
-V, --dot Einen ».« für jede verarbeitete Datei ausgeben
-W, --warning=FLAG Warnanzeige. Aktuelles FLAG ist eines von
»none«, »truncate«, »all«. Mehrfach
angegebene Optionen werden gespeichert.
Im Hineinkopier- und Herauskopier-Modus gültige Operatoren
-F, --file=[[BENUTZER@]HOST:]DATEINAME
Diesen DATEINAMEN anstelle der Standardeingabe
oder -ausgabe verwenden. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
-M, --message=ZEICHENKETTE ZEICHENKETTE ausgeben, wenn des Ende des
Datenträgers oder Sicherungsmediums erreicht ist
--rsh-command=BEFEHL Statt »rsh« den BEFEHL benutzen
Nur im Hineinkopiermodus mögliche Operatoren:
-b, --swap Sowohl »Halfwords« als auch Bytes der
»Halfwords« in den Daten vertauschen.
Äquivalent zu -sS
-f, --nonmatching Nur Dateien kopieren, denen keines der angegegeben
Muster entspricht
-I [[BENUTZER@]HOST:]DATEINAME Anstelle der Standardeingabe zu verwendender
Name der Archivdatei. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
-n, --numeric-uid-gid In der ausführlichen Inhaltstabelle UID und GID
numerisch anzeigen
-r, --rename Dateien interaktiv umbenennen
-s, --swap-bytes Die Bytes jedes »Halfwords« in den Dateien
vertauschen
-S, --swap-halfwords Die »Halfwords« jedes Worts (4 Bytes) in den
Dateien vertauschen
--to-stdout Dateien auf die Standardausgabe entpacken
-E, --pattern-file=DATEI Zusätzliche Muster aus DATEI lesen, die Namen zu
entpackender Dateien enthalten
--only-verify-crc When reading a CRC format archive, only verify the
checksum of each file in the archive, don't
actually extract the files
Nur im Herauskopiermodus mögliche Operatoren:
-A, --append Dateien an ein existierendes Archiv anfügen
--device-independent, --reproducible
Geräteunabhängige (reproduzierbare) Archive
erzeugen
--ignore-devno Gerätenummern nicht speichern
-O [[BENUTZER@]HOST:]DATEINAME Anstelle der Standardausgabe zu verwendender
Name der Archivdatei. BENUTZER und HOST können
optional angegeben werden, wenn das Archiv auf
einem entfernten Rechner liegt
--renumber-inodes Inodes neu nummerieren
Nur im Durchlaufmodus mögliche Operatoren:
-l, --link Dateien verknüpfen anstatt diese zu kopieren,
wenn möglich
Im Hineinkopier- und Herauskopiermodus gültige Operatoren:
--absolute-filenames Dateisystempräfixe nicht aus den Dateinamen
entfernen
--no-absolute-filenames Alle Dateien relativ zum aktuellen Verzeichnis
anlegen
Im Herauskopier- und Durchlaufmodus gültige Operatoren:
-0, --null Dateinamen in der Liste werden von einem
Null-Zeichen anstelle eines Zeilenumbruchs beendet
-a, --reset-access-time Zugriffszeiten der Dateien nach dem Lesen
zurücksetzen
-L, --dereference Symbolische Verknüpfungen dereferenzieren
(Zieldateien anstelle der Verknüpfungen
kopieren)
Im Hineinkopier- und Durchlaufmodus gültige Operatoren:
-d, --make-directories Übergeordnete Verzeichnisse anlegen, falls
nötig
-m, --preserve-modification-time
Letze Änderungszeiten beim Erstellen von Dateien
behalten
--no-preserve-owner Die Eigentumsverhältnisse der Dateien nicht
ändern
--sparse Dateien mit großen Null-Blöcken als
Sparse-Dateien schreiben
-u, --unconditional Alle Dateien bedingungslos ersetzen
-?, --help Diese Hilfeliste ausgeben
--usage Eine kurze Aufrufmeldung ausgeben
--version Programmversion ausgeben
Notwendige oder optionale Argumente für lange Optionen sind ebenso notwendig
oder optional für die entsprechenden kurzen Optionen.
Crontab cron table Exkurs
Crontab ist ein wichtiges Tool in Unix- und Linux-Systemen, das zur automatischen Ausführung von wiederkehrenden Aufgaben (Jobs) verwendet wird. Diese Aufgaben können Skripte, Befehle oder Programme sein, die zu bestimmten Zeitpunkten oder in regelmäßigen Intervallen ausgeführt werden.
Eine Crontab-Datei besteht aus einer Liste von Aufgaben, die jeweils in einer Zeile definiert sind. Jede Zeile hat ein bestimmtes Format:
Um die Crontab-Datei für den aktuellen Benutzer zu bearbeiten, verwendest Du den folgenden Befehl:
Dieser Befehl öffnet den Standard-Editor (z.B.
Um die aktuelle Crontab für den Benutzer anzuzeigen, ohne sie zu bearbeiten, verwendest Du:
Um alle Crontab-Einträge des aktuellen Benutzers zu löschen, verwendest Du:
Neben benutzerdefinierten Crontabs gibt es systemweite Crontab-Dateien, die global für alle Benutzer oder bestimmte Systemdienste gelten.
Diese speziellen Verzeichnisse in
In einer Crontab-Datei kannst Du auch Umgebungsvariablen definieren, die vor den eigentlichen Jobs stehen. Einige gängige Umgebungsvariablen sind:
Eingereicht durch: Schutzgeist1. Was ist eine Crontab?
- Eine Crontab (kurz für "cron table") ist eine Konfigurationsdatei, die Zeitpläne für cron-Jobs enthält. Jeder Benutzer auf einem System kann eine eigene Crontab-Datei haben, die angibt, welche Jobs zu welchen Zeiten ausgeführt werden sollen.
- Der cron-Dienst (oder einfach
cron
) liest diese Crontab-Dateien und führt die darin definierten Aufgaben entsprechend aus.
2. Aufbau einer Crontab-Datei
Eine Crontab-Datei besteht aus einer Liste von Aufgaben, die jeweils in einer Zeile definiert sind. Jede Zeile hat ein bestimmtes Format:
Beispiele für Crontab-Einträge:
- Täglich um Mitternacht:
0 0 * * * /path/to/script.sh
- Führt das Skript
script.sh
jeden Tag um 00:00 Uhr aus.
- Führt das Skript
- Jede Stunde:
0 * * * * /path/to/command
- Führt den Befehl jede Stunde zur vollen Stunde aus.
- Jeden Montag um 03:30 Uhr:
30 3 * * 1 /path/to/weekly-task.sh
- Führt
weekly-task.sh
jeden Montag um 03:30 Uhr aus.
- Führt
- Am 1. eines jeden Monats um 06:00 Uhr:
0 6 1 * * /path/to/monthly-task.sh
- Führt
monthly-task.sh
am ersten Tag jedes Monats um 06:00 Uhr aus.
- Führt
- Alle 5 Minuten:
*/5 * * * * /path/to/frequent-task.sh
- Führt
frequent-task.sh
alle 5 Minuten aus.
- Führt
3. Verwaltung von Crontabs
Crontab bearbeiten:
Um die Crontab-Datei für den aktuellen Benutzer zu bearbeiten, verwendest Du den folgenden Befehl:
crontab -e
Dieser Befehl öffnet den Standard-Editor (z.B.
nano
, vim
oder vi
) und lädt die Crontab-Datei zur Bearbeitung.Crontab anzeigen:
Um die aktuelle Crontab für den Benutzer anzuzeigen, ohne sie zu bearbeiten, verwendest Du:
crontab -l
Crontab löschen:
Um alle Crontab-Einträge des aktuellen Benutzers zu löschen, verwendest Du:
crontab -r
4. Systemweite Crontabs
Neben benutzerdefinierten Crontabs gibt es systemweite Crontab-Dateien, die global für alle Benutzer oder bestimmte Systemdienste gelten.
/etc/crontab
: Diese Datei enthält systemweite cron-Jobs. Hier kannst Du auch einen Benutzer angeben, unter dem der Befehl ausgeführt werden soll.
Beispiel:
0 5 * * * root /path/to/system-script.sh
- Führt
system-script.sh
jeden Tag um 05:00 Uhr als Benutzerroot
aus.
- Führt
/etc/cron.d/
: In diesem Verzeichnis kannst Du zusätzliche Dateien mit cron-Jobs ablegen, die ebenfalls systemweit gelten.
5. Spezielle Cron-Verzeichnisse
Diese speziellen Verzeichnisse in
/etc/
ermöglichen das einfache Hinzufügen von Jobs, die in bestimmten Intervallen ausgeführt werden, ohne dass eine Crontab-Datei direkt bearbeitet werden muss:/etc/cron.daily/
: Skripte in diesem Verzeichnis werden einmal täglich ausgeführt./etc/cron.weekly/
: Skripte in diesem Verzeichnis werden einmal wöchentlich ausgeführt./etc/cron.monthly/
: Skripte in diesem Verzeichnis werden einmal monatlich ausgeführt./etc/cron.hourly/
: Skripte in diesem Verzeichnis werden einmal stündlich ausgeführt.
6. Crontab-Syntax und Platzhalter
*
(Sternchen): Steht für "jede" Einheit (z.B. jede Minute, jede Stunde)./
(Schrägstrich): Dient zum Festlegen von Intervallen. Zum Beispiel*/5
bedeutet "alle 5 Minuten".,
(Komma): Listet verschiedene Zeitpunkte auf. Zum Beispiel1,15
bedeutet "1. und 15. Minute".-
(Bindestrich): Gibt einen Bereich an. Zum Beispiel1-5
bedeutet "von 1 bis 5".
7. Umgebungsvariablen in Crontabs
In einer Crontab-Datei kannst Du auch Umgebungsvariablen definieren, die vor den eigentlichen Jobs stehen. Einige gängige Umgebungsvariablen sind:
PATH
: Gibt an, wo nach ausführbaren Dateien gesucht werden soll.
PATH=/usr/local/bin:/usr/bin:/bin
SHELL
: Gibt die zu verwendende Shell an (normalerweise/bin/sh
oder/bin/bash
).
SHELL=/bin/bash
MAILTO
: Gibt die E-Mail-Adresse an, an die die Ausgabe des Jobs gesendet werden soll.
MAILTO=user@example.com
8. Fehlerbehebung und Logs
- Cron-Logs: Die Ausgaben und Fehler von cron-Jobs werden normalerweise in
/var/log/syslog
(auf Debian-basierten Systemen) oder/var/log/cron
(auf Red Hat-basierten Systemen) protokolliert. - Debugging: Um Probleme mit cron-Jobs zu debuggen, ist es oft hilfreich, die Ausgabe an eine Datei zu leiten oder die Jobausgabe per E-Mail an
MAILTO
zu senden.
9. Sicherheitsaspekte
- Zugriff auf Crontabs einschränken:
/etc/cron.allow
: Nur Benutzer in dieser Datei dürfen cron-Jobs erstellen./etc/cron.deny
: Benutzer in dieser Datei dürfen keine cron-Jobs erstellen.
- Richtige Dateiberechtigungen: Stelle sicher, dass die Skripte, die von cron ausgeführt werden, die richtigen Berechtigungen haben, damit sie nur von berechtigten Benutzern bearbeitet werden können.
Crontab ist ein mächtiges und flexibles Tool, um wiederkehrende Aufgaben auf einem Linux-System zu automatisieren. Mit der richtigen Syntax und Konfiguration kannst Du fast jede Aufgabe zu einem festgelegten Zeitpunkt oder Intervall ausführen lassen. Systemadministratoren verlassen sich stark auf crontabs, um tägliche Wartungsaufgaben, Backups, Systemupdates und vieles mehr zu automatisieren.
CUPS (Common Unix Printing System)
CUPS (Common Unix Printing System) ist das Standard-Drucksystem auf vielen Unix-ähnlichen Betriebssystemen, einschließlich Linux und macOS. Es ermöglicht die Verwaltung von Druckaufträgen, Druckern und Druckwarteschlangen und unterstützt eine Vielzahl von Druckern, von lokalen USB-Druckern bis hin zu netzwerkbasierten Druckern. CUPS verwendet das Internet Printing Protocol (IPP) zur Kommunikation zwischen Computern und Druckern.
Falls CUPS nicht bereits installiert ist, kannst Du es auf einem Debian-System einfach über die Paketverwaltung installieren:
Nach der Installation kannst Du den CUPS-Dienst starten und überprüfen, ob er läuft:
Die CUPS-Weboberfläche ist ein sehr nützliches Tool zur Verwaltung von Druckern und Druckaufträgen. Du kannst sie in einem Webbrowser öffnen:
CUPS bietet auch verschiedene Befehlszeilen-Tools, die nützlich sind, wenn Du die Druckerverwaltung über die Kommandozeile durchführen möchtest:
Um einen Drucker über die CUPS-Weboberfläche oder über die Befehlszeile hinzuzufügen, brauchst Du die Druckeradresse (URL) und den entsprechenden Treiber. Ein typisches Beispiel für die Installation eines Druckers über die Befehlszeile könnte so aussehen:
Hierbei:
CUPS ermöglicht es, Drucker für andere Geräte im Netzwerk freizugeben. Dies kannst Du entweder über die Weboberfläche oder durch Bearbeiten der Konfigurationsdatei
CUPS ist ein leistungsstarkes und flexibles Drucksystem, das auf vielen Unix-ähnlichen Systemen verwendet wird. Es ermöglicht die einfache Verwaltung von Druckern und Druckaufträgen, sowohl über eine benutzerfreundliche Weboberfläche als auch über leistungsstarke Befehlszeilen-Tools. Mit CUPS kannst Du eine breite Palette von Druckern verwalten und sowohl lokale als auch Netzwerkdrucker einrichten.Eingereicht durch: schutzgeist
Kleiner Exkurs: CUPS (Common Unix Printing System)
CUPS (Common Unix Printing System) ist das Standard-Drucksystem auf vielen Unix-ähnlichen Betriebssystemen, einschließlich Linux und macOS. Es ermöglicht die Verwaltung von Druckaufträgen, Druckern und Druckwarteschlangen und unterstützt eine Vielzahl von Druckern, von lokalen USB-Druckern bis hin zu netzwerkbasierten Druckern. CUPS verwendet das Internet Printing Protocol (IPP) zur Kommunikation zwischen Computern und Druckern.
Hauptfunktionen von CUPS
- Druckerverwaltung:
- CUPS ermöglicht die Verwaltung von Druckern über eine webbasierte Benutzeroberfläche oder über Befehlszeilen-Tools. Du kannst Drucker hinzufügen, konfigurieren und entfernen, Druckaufträge verwalten und Warteschlangen überwachen.
- Unterstützung für verschiedene Druckprotokolle:
- Neben IPP unterstützt CUPS auch andere Protokolle wie LPD/LPR, SMB (Samba), und mehr.
- Treiberunterstützung:
- CUPS unterstützt eine Vielzahl von Druckertreibern, die von Druckerherstellern bereitgestellt werden. Es bietet auch eine Treiberunabhängige Möglichkeit für die Unterstützung von generischen Druckern.
- Webbasierte Konfiguration:
- CUPS bietet eine webbasierte Schnittstelle für die Verwaltung und Konfiguration. Diese ist standardmäßig unter
http://localhost:631
erreichbar.
- CUPS bietet eine webbasierte Schnittstelle für die Verwaltung und Konfiguration. Diese ist standardmäßig unter
Installation von CUPS auf Debian
Falls CUPS nicht bereits installiert ist, kannst Du es auf einem Debian-System einfach über die Paketverwaltung installieren:
sudo apt-get update
sudo apt-get install cups
Starten und Verwalten des CUPS-Dienstes
Nach der Installation kannst Du den CUPS-Dienst starten und überprüfen, ob er läuft:
sudo systemctl start cups
sudo systemctl enable cups
sudo systemctl status cups
start
: Startet den CUPS-Dienst.enable
: Stellt sicher, dass CUPS beim Booten des Systems automatisch startet.status
: Zeigt den aktuellen Status des CUPS-Dienstes an.
Zugriff auf die CUPS-Weboberfläche
Die CUPS-Weboberfläche ist ein sehr nützliches Tool zur Verwaltung von Druckern und Druckaufträgen. Du kannst sie in einem Webbrowser öffnen:
http://localhost:631
Hier kannst Du:
Drucker hinzufügen und konfigurieren.
Druckaufträge verwalten (anhalten, fortsetzen, abbrechen).
Druckwarteschlangen überwachen.
Druckerfreigaben einrichten (damit andere Geräte im Netzwerk den Drucker nutzen können).
Befehlszeilen-Tools
CUPS bietet auch verschiedene Befehlszeilen-Tools, die nützlich sind, wenn Du die Druckerverwaltung über die Kommandozeile durchführen möchtest:
lpstat
: Zeigt den Status von Druckern und Druckaufträgen an.
lpstat -p
lpadmin
: Fügt Drucker hinzu, entfernt sie oder ändert ihre Einstellungen.
sudo lpadmin -p
-E -v -m
cancel
: Bricht Druckaufträge ab.
cancel
lpoptions
: Zeigt Druckeroptionen an oder setzt Standardoptionen.
lpoptions -d
Drucker hinzufügen
Um einen Drucker über die CUPS-Weboberfläche oder über die Befehlszeile hinzuzufügen, brauchst Du die Druckeradresse (URL) und den entsprechenden Treiber. Ein typisches Beispiel für die Installation eines Druckers über die Befehlszeile könnte so aussehen:
sudo lpadmin -p MeinDrucker -E -v ipp://drucker_ip/printers/MeinDrucker -m everywhere
Hierbei:
-p MeinDrucker
: Setzt den Namen des Druckers.-E
: Aktiviert den Drucker.-v
: Gibt die Adresse des Druckers an.-m
: Wählt den Druckertreiber aus.everywhere
wird oft für moderne Drucker verwendet, die mit IPP Everywhere kompatibel sind.
Zugriffssteuerung und Freigaben
CUPS ermöglicht es, Drucker für andere Geräte im Netzwerk freizugeben. Dies kannst Du entweder über die Weboberfläche oder durch Bearbeiten der Konfigurationsdatei
/etc/cups/cupsd.conf
tun. In dieser Datei kannst Du auch Zugriffsrechte und Sicherheitsoptionen festlegen.CUPS ist ein leistungsstarkes und flexibles Drucksystem, das auf vielen Unix-ähnlichen Systemen verwendet wird. Es ermöglicht die einfache Verwaltung von Druckern und Druckaufträgen, sowohl über eine benutzerfreundliche Weboberfläche als auch über leistungsstarke Befehlszeilen-Tools. Mit CUPS kannst Du eine breite Palette von Druckern verwalten und sowohl lokale als auch Netzwerkdrucker einrichten.
curl
Wird nur noch selten genutzt oder darauf verwiesen:
curl - Ein Tool zum Abrufen von Daten von Servern.
Beispiel: curl http://example.com ruft die Homepage von example.com ab.
Die meisten verwenden wohl wget, allerdings gibt es hier starke Unterschiede.
Curl kann für viele Dinge genutzt werden und ist dadurch deutlich mächtiger!
Sowohl "curl" als auch "wget" sind Befehlszeilen-Tools, die verwendet werden, um Dateien von einem Server herunterzuladen. Der Hauptunterschied zwischen ihnen liegt in den Funktionen, die sie bieten.
"Curl" ist ein vielseitiges Werkzeug, das mehrere Protokolle unterstützt, darunter HTTP, HTTPS, FTP, SCP, SFTP und mehr. Es kann Dateien von URLs, FTP-Servern und SFTP-Servern herunterladen und unterstützt auch den Upload von Dateien. "Curl" kann auch benutzerdefinierte Header und Cookies senden und kann sogar zur Durchführung von Tests von RESTful-APIs verwendet werden.
"Wget" ist hauptsächlich ein Tool zum Herunterladen von Dateien über HTTP, HTTPS und FTP-Protokolle. Es bietet Funktionen wie das Herunterladen von Dateien im Hintergrund, das Fortsetzen von unterbrochenen Downloads und das Rekursiv-Download von Dateien. Es kann auch verwendet werden, um eine komplette Website einschließlich Unterseiten und Bilder herunterzuladen.
Ein weiterer wichtiger Unterschied zwischen "curl" und "wget" liegt in der Art und Weise, wie sie auf eine fehlerhafte Verbindung reagieren. Wenn "curl" auf eine fehlerhafte Verbindung stößt, gibt es den Fehler aus und geht zum nächsten Befehl über. "Wget" versucht dagegen, die Verbindung wiederherzustellen, bevor es aufgibt.
Insgesamt ist "curl" eine bessere Wahl, wenn Sie mehr Funktionen benötigen, wie das Senden von Cookies oder benutzerdefinierten Headern oder wenn Sie mehrere Protokolle unterstützen möchten. "Wget" ist eine gute Wahl, wenn Sie einfach Dateien von einem Server herunterladen möchten und eine bessere Unterstützung für den Download von Websites und Rekursion benötigen.
curl - Ein Tool zum Abrufen von Daten von Servern.
Beispiel: curl http://example.com ruft die Homepage von example.com ab.
Die meisten verwenden wohl wget, allerdings gibt es hier starke Unterschiede.
Curl kann für viele Dinge genutzt werden und ist dadurch deutlich mächtiger!
Sowohl "curl" als auch "wget" sind Befehlszeilen-Tools, die verwendet werden, um Dateien von einem Server herunterzuladen. Der Hauptunterschied zwischen ihnen liegt in den Funktionen, die sie bieten.
"Curl" ist ein vielseitiges Werkzeug, das mehrere Protokolle unterstützt, darunter HTTP, HTTPS, FTP, SCP, SFTP und mehr. Es kann Dateien von URLs, FTP-Servern und SFTP-Servern herunterladen und unterstützt auch den Upload von Dateien. "Curl" kann auch benutzerdefinierte Header und Cookies senden und kann sogar zur Durchführung von Tests von RESTful-APIs verwendet werden.
"Wget" ist hauptsächlich ein Tool zum Herunterladen von Dateien über HTTP, HTTPS und FTP-Protokolle. Es bietet Funktionen wie das Herunterladen von Dateien im Hintergrund, das Fortsetzen von unterbrochenen Downloads und das Rekursiv-Download von Dateien. Es kann auch verwendet werden, um eine komplette Website einschließlich Unterseiten und Bilder herunterzuladen.
Ein weiterer wichtiger Unterschied zwischen "curl" und "wget" liegt in der Art und Weise, wie sie auf eine fehlerhafte Verbindung reagieren. Wenn "curl" auf eine fehlerhafte Verbindung stößt, gibt es den Fehler aus und geht zum nächsten Befehl über. "Wget" versucht dagegen, die Verbindung wiederherzustellen, bevor es aufgibt.
Insgesamt ist "curl" eine bessere Wahl, wenn Sie mehr Funktionen benötigen, wie das Senden von Cookies oder benutzerdefinierten Headern oder wenn Sie mehrere Protokolle unterstützen möchten. "Wget" ist eine gute Wahl, wenn Sie einfach Dateien von einem Server herunterladen möchten und eine bessere Unterstützung für den Download von Websites und Rekursion benötigen.
Übermittle ein Linux Befehl