Ordner automatisch erstellen
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Ordner automatisch erstellen
Ich habe folgenden Bereich: /home/userx/Abgabe
Nun soll folgendes Script laufen, jedes Mal wenn der User den Ordner Angabe löscht, soll er automatisch neu erstellt werden.
Wie kann ich das unter Debian realisieren??
Danke, LG Chris
Nun soll folgendes Script laufen, jedes Mal wenn der User den Ordner Angabe löscht, soll er automatisch neu erstellt werden.
Wie kann ich das unter Debian realisieren??
Danke, LG Chris
Re: Ordner automatisch erstellen
hi,
mit inotifywait aus inotify-tools könnte man auf eine Änderung im home-Verzeichnis warten, vergleichen, ob "Abgabe" gelöscht wurde und es dann neu erzeugen. Das ganze könnte in einer Endlosschleife in einem Script laufen, das in .profile oder in .bashrc im Hintergrund gestartet wird.
Ungetestet, nur so ungefähr aus dem Gedächtnis...
mit inotifywait aus inotify-tools könnte man auf eine Änderung im home-Verzeichnis warten, vergleichen, ob "Abgabe" gelöscht wurde und es dann neu erzeugen. Das ganze könnte in einer Endlosschleife in einem Script laufen, das in .profile oder in .bashrc im Hintergrund gestartet wird.
Ungetestet, nur so ungefähr aus dem Gedächtnis...
Beware of programmers who carry screwdrivers.
Re: Ordner automatisch erstellen
Ich würde einfach in /etc/crontab einen passenden cronjob hinzufügen:
Es wird im Intervall einer Minute überprüft ob das Verzeichnis noch existiert, falls negativ wird das Verzeichnis neu angelegt.
Oder falls der Ordner von einem beliebigen Ort herüber kopiert werden soll:
Code: Alles auswählen
*/1 * * * * user test -d /home/userx/Abgabe || mkdir /home/userx/Abgabe >/dev/null 2>&1
Oder falls der Ordner von einem beliebigen Ort herüber kopiert werden soll:
Code: Alles auswählen
*/1 * * * * user test -d /home/userx/Abgabe || cp -a /wo_auch_immer/Abgabe /home/userx/Abgabe >/dev/null 2>&1
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Re: Ordner automatisch erstellen
das mit dem Cronjob funktioniert wunderbar:
Nur eine Frage was bedeutet das /dev/null 2>&1 ???
Kann ich jedes Mal wenn der Ordner wirklich erstellt werden muss das in eine Logdatei schreiben z.B. /var/ScriptLog.txt ???
Danke für die Hilfe.
LG Chris
Code: Alles auswählen
*/1 * * * * user test -d /home/userx/Abgabe || mkdir /home/userx/Abgabe >/dev/null 2>&1
Kann ich jedes Mal wenn der Ordner wirklich erstellt werden muss das in eine Logdatei schreiben z.B. /var/ScriptLog.txt ???
Danke für die Hilfe.
LG Chris
Re: Ordner automatisch erstellen
Es heißt insgesamt befehl >/dev/null 2>&1 und bedeutet, dass sämtliche Ausgaben, die normalerweise nach stdout oder stderr (also 1 und 2) rausgehen würden (bei Cronjobs allerdings üblicherweise als Mail verschickt werden) kommentarlos entsorgt werden. Ich persönlich halte das für eine schlechte Idee, im Normalfall möchte man wissen, was schiefgelaufen ist.Nur eine Frage was bedeutet das /dev/null 2>&1 ???
Kann ich jedes Mal wenn der Ordner wirklich erstellt werden muss das in eine Logdatei schreiben z.B. /var/ScriptLog.txt ???
Und wenn du es loggen willst, ginge das z.B. so:
Code: Alles auswählen
mkdir /pfad/zum/dir && echo "Verzeichnis erstellt" >> /pfad/zum/logfile.txt
Re: Ordner automatisch erstellen
incron soll das nach manpage können
Aber 599801 ist von 2010-10,
http://bts.aiken.cz/view.php?id=491 wohl auch upstream noch nicht gefixt.
http://inotify.aiken.cz/?section=incron&page=changelog
walkaround mit einem Test auf die entsprechenden verz im Skript new.sh.
Die Maskenmodifizierer
,IN_ISDIR
,IN_ONLYDIR
funktionieren hierbei leider auch nicht wie erwartet und können weggelassen werden.
new.sh in der Art
Code: Alles auswählen
/pfadA/verz IN_DELETE_SELF /pfadB/new.sh $@/$# $%
http://bts.aiken.cz/view.php?id=491 wohl auch upstream noch nicht gefixt.
http://inotify.aiken.cz/?section=incron&page=changelog
walkaround
Code: Alles auswählen
/pfadA IN_DELETE /pfadB/new.sh $@/$# $%
Die Maskenmodifizierer
,IN_ISDIR
,IN_ONLYDIR
funktionieren hierbei leider auch nicht wie erwartet und können weggelassen werden.
new.sh in der Art
Code: Alles auswählen
#!/bin/sh
DTE=$(date "+%F %T")
DEL="$1"
case "$DEL" in
/pfadA/dir1|/pfadB/dir2)
echo "$DTE OPTS: $@" >> /logpfad/incron.job.log
mkdir -p "$DEL"
;;
*)
;;
esac
Zuletzt geändert von rendegast am 19.10.2014 19:23:45, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Re: Ordner automatisch erstellen
Das funktioniert für meine Zwecke wunderbar so, DANKESCHÖNniemand hat geschrieben:Es heißt insgesamt befehl >/dev/null 2>&1 und bedeutet, dass sämtliche Ausgaben, die normalerweise nach stdout oder stderr (also 1 und 2) rausgehen würden (bei Cronjobs allerdings üblicherweise als Mail verschickt werden) kommentarlos entsorgt werden. Ich persönlich halte das für eine schlechte Idee, im Normalfall möchte man wissen, was schiefgelaufen ist.Nur eine Frage was bedeutet das /dev/null 2>&1 ???
Kann ich jedes Mal wenn der Ordner wirklich erstellt werden muss das in eine Logdatei schreiben z.B. /var/ScriptLog.txt ???
Und wenn du es loggen willst, ginge das z.B. so:Deine Fragezeichentaste klemmt, btw..Code: Alles auswählen
mkdir /pfad/zum/dir && echo "Verzeichnis erstellt" >> /pfad/zum/logfile.txt
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Re: Ordner automatisch erstellen
Jetzt hab ich es so wie kann ich in der Log Datei auch das Datum-Uhrzeit rein schreiben??
Code: Alles auswählen
*/1 * * * * wachhund wachhund -d /mnt/SWAP/Scanner || mkdir /mnt/SWAP/Scanner >/dev/null 2>&1 && echo "Ordner Scanner erstellt" >> /var/ScriptLog.txt
Re: Ordner automatisch erstellen
Ich lege dir mal den Bash Beginners Guide nahe.
Für Formatierungsmöglichkeiten von date siehe dessen Hilfe oder Manpage.
Deine Fragezeichentaste klemmt immer noch, btw..
Code: Alles auswählen
mkdir /pfad/zum/dir && echo "Verzeichnis erstellt: $(date)" >> /pfad/zum/logfile.txt
Deine Fragezeichentaste klemmt immer noch, btw..
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Re: Ordner automatisch erstellen
wenn ich das Datum so formatieren will dann tut er nix mehr
Code: Alles auswählen
$(date +%Y-%m-%d_%H:%M)
Re: Ordner automatisch erstellen
Das Prozentzeichen hat in der Crontab eine spezielle Funktion:
Du musst die Prozentzeichen also mit einem Backslash maskieren'man 5 crontab' hat geschrieben: The entire command portion of the
line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable
of the crontab file. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into
newline characters, and all data after the first % will be sent to the command as standard input.
-
- Beiträge: 6
- Registriert: 17.10.2014 22:21:27
Re: Ordner automatisch erstellen
DANKESCHÖN an ALLE es funktioniert nun wunderbar