Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 31. Dezember 2007, 13:27

crontab Problem

Ich habe ein Problem mit dem Starten von Jobs über /etc/crontab.
Da mir Software-RAID mit der NSLU2 zu unsicher (Setup des Arrays nicht transparent und abhängig von
Device-IDs) und zu wenig performant war habe ich mich entschieden, auf Unison umzusteigen und damit meine Backup-Platten zu synchronisieren.
Vorangestellt: Unison läuft, die Kommandos, welche ich in der Crontab eingegeben habe, funktionieren in der Shell.

Zielstellung: Unison soll tgl. um 3 Uhr morgens ausgeführt werden, da zu diesem Zeitpunkt das System von niemandem sonst genutzt wird. Weiterhin soll an geraden Tagen ein Backup-Job und an ungeraden Tagen ein anderer Backup-Job gestartet werden. Deshalb kann ich /etc/cron.daily nicht nutzen (Korrigiert mich wenn ich hier falsch liege). Also habe ich in meiner /etc.crontab folgendes eingetragen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uwe@NSLU2:~$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*  3    * * 1,3,5,7 uwe /usr/bin/unison music
*  3    * * 2,4,6 uwe   /usr/bin/unison video
@reboot inadyn --input_file /home/uwe/.inadyn.dyndns
Alle Kommandos funktionieren bis auf die beiden für Unison. In der /var/log/cron.log steht dazu

Quellcode

1
Dec 31 12:56:05 dulz cron[2959]: Error: bad username; while reading /etc/crontab
Bedeutet das, dass ich in der crontab keine Befehle unter den Rechten eines normalen Users ausführen kann? Warum besteht denn dann die Möglichkeit, einen user anzugeben? Oder muß ich noch etwas zusätzlich konfigurieren. Ein Hinzufügen von uwe zur Gruppe crontab hat nichts bewirkt. cron.allow und cron.deny sind nicht existent. Im Netz habe ich dazu auch keine Infos gefunden.
Unison als root auszuführen würde imho dazu führen, dass das Backup mit Rechten als root geschrieben würde. Oder liege ich da falsch?
Also, kann mir bitte jemand weiterhelfen?

was hast Du bereits probiert?: Kontrolle der crontab

Die Suche schon benuzt?: ja

Art der Firmware: Debian Etch

wird ein externer Datenträger genutzt, wenn ja, was für eine Art: 5 externe USB HDDs über USB-Hub

Anzeigen

2

Montag, 31. Dezember 2007, 16:20

Hi,

also vielleicht hilft es, als User uwe einfach
crontab -e
auszuführen und die beiden cronjobs dort einzufügen.

In der manpage zu crontab ( man 5 crontab ) steht auch, dass jeder User seine eigene crontab besitzt, das heisst wohl, dass /etc/crontab nur cronjobs für den User root beinhaltet.

Zitat


A crontab file contains instructions to the cron(8) daemon of the gen-
eral form: ``run this command at this time on this date''. Each user
has their own crontab, and commands in any given crontab will be exe-
cuted as the user who owns the crontab. Uucp and News will usually
have their own crontabs, eliminating the need for explicitly running
su(1) as part of a cron command

Gruss,
EvilDevil

Anzeigen

3

Dienstag, 1. Januar 2008, 14:03

Ja, das weiß ich. Allerdings nutze ich die NSLU2 ja wie die meisten von Euch als Server und bin entsprechend nicht eingeloggt. Und so weit ich das verstehe wird eine User-crontab (mit crontab -e angelegt) nur bei eingeloggtem user bearbeitet.
Insofern danke für den Hinweis, EvilDevil, aber das hilft mir wohl nicht weiter.

4

Dienstag, 1. Januar 2008, 20:12

Hi,

also solange der User eine Login-Shell besitzt, kannst du als root
einfach per

Quellcode

1
su - uwe

als User uwe einloggen, deine crontab erstellen oder editieren und wieder ausloggen.
Der User uwe muss ja nicht eingeloggt sein, damit seine cronjobs ausgeführt werden. Notfalls kannst du kurzzeitig dem User uwe eine Login-Shell in der /etc/passwd verpassen.

Gruss,
EvilDevil

5

Dienstag, 1. Januar 2008, 23:49

Zitat

Der User uwe muss ja nicht eingeloggt sein, damit seine cronjobs ausgeführt werden.

Also das wollte ich wissen. Ich habe also mal über crontab -e meine eigene crontab erstellt, mal sehen ob sich diese Nacht was tut.
Danke für die Hilfe!

6

Mittwoch, 2. Januar 2008, 07:53

Wenn du das so wie in deinem Beispiel machst, sagst du Cron er soll zur Stunde 3 zu jeder Minute den Job starten:

Zitat


* 3 * * 1,3,5,7 uwe /usr/bin/unison music


So dagegen sagst du Cron er soll es um 3:11 einmal starten:

Zitat


11 3 * * 1,3,5,7 uwe /usr/bin/unison music
Scovery xS - 1002MHz - RAM 512MB - HD 160GB - Debian Etch
In Planung: CarNSLU - 266MHz - RAM 32MB - Flash 2GB - USB-Extra-Ports - WLAN - USBAudio - GPS - Debian Etch

7

Mittwoch, 2. Januar 2008, 08:17

Danke für Eure Hilfe.

Die user-crontab funktioniert tatsächlich. Ich weiß gar nicht mehr wie ich drauf kommen konnte, dass dies nicht funktionieren würde.

@VooChee: Danke für den hilfreichen Tip!

Wieder was bei Linux dazugelernt! Das Thema ist hiermit gelöst.

Social Bookmarks