Symlink in cron.daily wird nicht ausgeführt

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Symlink in cron.daily wird nicht ausgeführt

Sebastian Suchanek
Hallo NG!

Auf einem frisch installierten Stretch-System wollte ich eigentlich ein
selbstgeschriebens Backup-Skript dadurch regelmäßig ausführen lassen,
dass ich in /etc/cron.daily einen entsprechenden Symlink anlege:

# ls -la /etc/cron.daily/backup.sh
lrwxrwxrwx 1 root root 24 Dec 18 18:36 /etc/cron.daily/backup.sh ->
   /usr/local/bin/backup.sh
# ls -la /usr/local/bin/backup.sh
-rwxr-xr-x 1 root staff 2785 Dec 18 18:55 /usr/local/bin/backup.sh
#

Auf einem anderen System, auf dem noch Jessie läuft, funktioniert ein
solches Konstrukt problemlos. Hier jedoch nicht, das Backup-Skript wird
beim täglichen Cron-Lauf nicht abgearbeitet. Die Zugriffsrechte sollten
aber passen und das Skript selbst ist natürlich funktionisfähig: Rufe
ich es von der Konsole aus auf - egal, ob den Symlink in /etc/cron.daily
oder das Skript direkt - wird auch absolut unauffällig abgearbeitet.

Was läuft hier schief, wie kann man die Sache zum Funktionieren bringen?


Tschüs,

Sebastian

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Manfred Rebentisch-2
Hallo,

Am 21.12.17 um 18:59 schrieb Sebastian Suchanek:

> Hallo NG!
>
> Auf einem frisch installierten Stretch-System wollte ich eigentlich ein
> selbstgeschriebens Backup-Skript dadurch regelmäßig ausführen lassen,
> dass ich in /etc/cron.daily einen entsprechenden Symlink anlege:
>
> # ls -la /etc/cron.daily/backup.sh
> lrwxrwxrwx 1 root root 24 Dec 18 18:36 /etc/cron.daily/backup.sh ->
>    /usr/local/bin/backup.sh
> # ls -la /usr/local/bin/backup.sh
> -rwxr-xr-x 1 root staff 2785 Dec 18 18:55 /usr/local/bin/backup.sh
> #
>
> Auf einem anderen System, auf dem noch Jessie läuft, funktioniert ein
> solches Konstrukt problemlos. Hier jedoch nicht, das Backup-Skript wird
> beim täglichen Cron-Lauf nicht abgearbeitet. Die Zugriffsrechte sollten
> aber passen und das Skript selbst ist natürlich funktionisfähig: Rufe
> ich es von der Konsole aus auf - egal, ob den Symlink in /etc/cron.daily
> oder das Skript direkt - wird auch absolut unauffällig abgearbeitet.
>
> Was läuft hier schief, wie kann man die Sache zum Funktionieren bringen?
>
>
> Tschüs,
>
> Sebastian
>

Meines Wissens darf das Shellscript keine Extension haben, also
umbenennen in "backup".

Manfred

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Uwe Kerstan
In reply to this post by Sebastian Suchanek
* Sebastian Suchanek [21-12-2017 18:59]:

> Auf einem frisch installierten Stretch-System wollte ich eigentlich ein
> selbstgeschriebens Backup-Skript dadurch regelmäßig ausführen lassen,
> dass ich in /etc/cron.daily einen entsprechenden Symlink anlege:
>
> # ls -la /etc/cron.daily/backup.sh
> lrwxrwxrwx 1 root root 24 Dec 18 18:36 /etc/cron.daily/backup.sh ->
>    /usr/local/bin/backup.sh

Die Skripte in /etc/cron.daily/ werden per run-parts ausgeführt.
In der Manpage findest du die zulässigen Zeichen. Der Punkt ist
per Default nicht dabei.

> Was läuft hier schief, wie kann man die Sache zum Funktionieren bringen?

Nenne den Link in /etc/cron.daily/ nur backup oder backup-sh - dann
sollte es funktionieren.

Gruß Uwe

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Stefan Baur
In reply to this post by Manfred Rebentisch-2
Am 21.12.2017 um 19:30 schrieb Manfred Rebentisch:
> Meines Wissens darf das Shellscript keine Extension haben, also
> umbenennen in "backup".

<nitpick>

Das Shellskript darf schon eine Extension haben.
Das, was Du schreibst, kann* aber durchaus auf das zutreffen, was in
/etc/cron.daily/ liegt, sei es nun Shellscript oder Symlink.

MaW: ein Symlink /etc/cron.daily/backup -> /usr/local/bin/backup.sh
(ersteres ohne Extension, zweiteres mit) $SOLLTE auch funktionieren.

</nitpick>

*Ich bin gerade zu faul, nachzulesen, ob generell keine Extensions
zulässig sind, oder nur bestimmte unzulässig sind. #DAWARMALWAS

Gruß
Stefan

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Jens Schüßler-2
* Stefan Baur <[hidden email]> wrote:

> Am 21.12.2017 um 19:30 schrieb Manfred Rebentisch:
> > Meines Wissens darf das Shellscript keine Extension haben, also
> > umbenennen in "backup".
>
> <nitpick>
>
> Das Shellskript darf schon eine Extension haben.
> Das, was Du schreibst, kann* aber durchaus auf das zutreffen, was in
> /etc/cron.daily/ liegt, sei es nun Shellscript oder Symlink.
>
> MaW: ein Symlink /etc/cron.daily/backup -> /usr/local/bin/backup.sh
> (ersteres ohne Extension, zweiteres mit) $SOLLTE auch funktionieren.
>
> </nitpick>
>
> *Ich bin gerade zu faul, nachzulesen, ob generell keine Extensions
> zulässig sind, oder nur bestimmte unzulässig sind. #DAWARMALWAS

Generell keine, da
,----[ man cron ]-
| the file names must conform to the filename requirements of run-parts:
| they must be entirely made up of letters, digits
| and can only contain the special signs underscores ('_') and
| hyphens ('-'). Any file that does not conform to these
| requirements will not be executed by run-parts.
|
| For example, any file containing dots will be ignored.
|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`----

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Peter Blancke
Am 2017-12-22, Jens Schüßler <[hidden email]> schrieb:

> ,----[ man cron ]-
>| the file names must conform to the filename requirements of run-parts:
>| they must be entirely made up of letters, digits
>| and can only contain the special signs underscores ('_') and
>| hyphens ('-'). Any file that does not conform to these
>| requirements will not be executed by run-parts.
>|
>| For example, any file containing dots will be ignored.
>|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> `----

Wer mag mir den Sinn einer derartigen Restriktion erklaeren?

Grusz,

Peter Blancke

--
Hoc est enim verbum meum!

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Michael Schuerig-2
On Freitag, 22. Dezember 2017 09:21:32 CET Peter Blancke wrote:

> Am 2017-12-22, Jens Schüßler <[hidden email]> schrieb:
> > ,----[ man cron ]-
> >
> >| the file names must conform to the filename requirements of run-parts:
> >| they must be entirely made up of letters, digits
> >| and can only contain the special signs underscores ('_') and
> >| hyphens ('-'). Any file that does not conform to these
> >| requirements will not be executed by run-parts.
> >|
> >| For example, any file containing dots will be ignored.
> >|
> >|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > `----
>
> Wer mag mir den Sinn einer derartigen Restriktion erklaeren?

Auf diese Weise kannst du selbst solche Dateien deaktivieren, indem du sie in
irgendwas.disabled, irgendwas.lassessein o.ä. umbenennst. Gleiches kann das
Paketmanagement tun: irgendwas.dpkg-old, irgendwas.dpkg-new.

Die Restriktion ist also durchaus sinnvoll und auch nicht zu weit gefasst, den
es wäre sehr schwierig und schwer nachvollziehbar, wenn es nur bestimmte
Endungen gäbe, die zum Ignorieren einer Datei führen würden. So, wie sie ist,
ist die Regel einfach: "Normale" Namen, aber ohne Punkte drin.

Michael

--
Michael Schuerig
mailto:[hidden email]
http://www.schuerig.de/michael/

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Jens Schüßler-2
In reply to this post by Peter Blancke
* Peter Blancke <[hidden email]> wrote:

> Am 2017-12-22, Jens Schüßler <[hidden email]> schrieb:
>
> > ,----[ man cron ]-
> >| the file names must conform to the filename requirements of run-parts:
> >| they must be entirely made up of letters, digits
> >| and can only contain the special signs underscores ('_') and
> >| hyphens ('-'). Any file that does not conform to these
> >| requirements will not be executed by run-parts.
> >|
> >| For example, any file containing dots will be ignored.
> >|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > `----
>
> Wer mag mir den Sinn einer derartigen Restriktion erklaeren?

Das erkärt dir auch 'man cron', der Satz der danach kommt un den ich nicht mit zitierte
,----
| This is done to prevent cron from running any of the files that are left by the
| Debian  package  management  system  when  handling  files  in /etc/cron.d/ as
| configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and
| .dpkg-new).
`----

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Paul Muster-20
In reply to this post by Jens Schüßler-2
On 22.12.2017 10:02, Jens Schüßler wrote:

> Generell keine, da
> ,----[ man cron ]-
> | the file names must conform to the filename requirements of run-parts:
> | they must be entirely made up of letters, digits
> | and can only contain the special signs underscores ('_') and
> | hyphens ('-'). Any file that does not conform to these
> | requirements will not be executed by run-parts.
> |
> | For example, any file containing dots will be ignored.
> |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> `----

Ganz tolle Idee. Gerade, wo man derzeit an anderer Stelle gezwungen
wird, zahlreiche Dateien nach .conf umzubenennen, weil sie _dort_
ansonsten ignoriert werden. (WIMRE ist das der Fall bei Apache bzw. bei
Apache unter Debian.)


mfG Paul


Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Stefan Baur
Am 22.12.2017 um 13:43 schrieb Paul Muster:
> Ganz tolle Idee. Gerade, wo man derzeit an anderer Stelle gezwungen
> wird, zahlreiche Dateien nach .conf umzubenennen, weil sie _dort_
> ansonsten ignoriert werden. (WIMRE ist das der Fall bei Apache bzw. bei
> Apache unter Debian.)

Die Idee ist in der Tat toll, da sie zuverlässig verhindert, dass Jobs
doppelt ausgeführt werden. Nicht nur bei .dpkg-dist, .dpkg-orig, und
.dpkg-new, wie bereits erläutert, sondern z.B. auch bei .dateiname.swp,
wenn Du gerade mit "vi" die Datei im Verzeichnis im Zugriff hast und
darin herumeditierst, während cron losrennen will, und wo bestenfalls
nichts, schlimmstenfalls aber ziemlicher Murks passiert.

Es hindert Dich ja niemand daran, einen Symlink anzulegen, der keinen
Punkt im Dateinamen hat, und dann auf eine Datei mit Punkt im Namen zeigt.

Gruß
Stefan

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Torsten Berger-2

Am 22.12.2017 um 18:20 schrieb Dirk Salva:
> Das geht nämlich sogar noch schlimmer: es gibt (oder gab)
> Config-Dateien, in denen nur Zeilen mit ## ein Kommentar waren, während
> Zeilen mit einem vorangestellten einfachen # aktiv genutzt wurden. Oder
> die kranke joerc, wo man Optionen mit einem - setzt und mit --
> deaktiviert.

oder /etc/sudoers:
#includedir /etc/sudoers.d

ohne Raute werden die Konfigurationsdateien unter "includedir" nicht
abgearbeitet.
Alles andere mit Route wird allerdings als Kommentar verstanden.

Bye Torsten

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Jens Schüßler-2
* Torsten Berger <[hidden email]> wrote:

>
> Am 22.12.2017 um 18:20 schrieb Dirk Salva:
> > Das geht nämlich sogar noch schlimmer: es gibt (oder gab)
> > Config-Dateien, in denen nur Zeilen mit ## ein Kommentar waren, während
> > Zeilen mit einem vorangestellten einfachen # aktiv genutzt wurden. Oder
> > die kranke joerc, wo man Optionen mit einem - setzt und mit --
> > deaktiviert.
>
> oder /etc/sudoers:
> #includedir /etc/sudoers.d
>
> ohne Raute werden die Konfigurationsdateien unter "includedir" nicht
> abgearbeitet.
> Alles andere mit Route wird allerdings als Kommentar verstanden.

Es muß für Klicki-Bunti-Opfer schon schwer sein zu akzeptieren,
daß verschiedene Sprachen verschiedene Syntax verwenden.
BNeschwerst du dich auch darüber wenn deine HTML-Datei keine Rauten als
Commenttags akzeptiert?

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Sven Hartge-5
In reply to this post by Torsten Berger-2
Torsten Berger <[hidden email]> wrote:
> Am 22.12.2017 um 18:20 schrieb Dirk Salva:

>> Das geht nämlich sogar noch schlimmer: es gibt (oder gab)
>> Config-Dateien, in denen nur Zeilen mit ## ein Kommentar waren,
>> während Zeilen mit einem vorangestellten einfachen # aktiv genutzt
>> wurden. Oder die kranke joerc, wo man Optionen mit einem - setzt und
>> mit -- deaktiviert.

> oder /etc/sudoers:
> #includedir /etc/sudoers.d

> ohne Raute werden die Konfigurationsdateien unter "includedir" nicht
> abgearbeitet.  Alles andere mit Route wird allerdings als Kommentar
> verstanden.

Das liegt daran, dass dies IIRC ein Debianismus ist. Diese Lösung wurde
AFAIK gewählt, damit die /etc/sudoers von Debian auch kompatibel mit
anderen Versionen in Debian und anderen Distributionen ist.

Grundsätzlich "schön" sind solche "magischen" Kommentare aber nicht
wirklich.



--
Sigmentation fault. Core dumped.

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Torsten Berger-2
In reply to this post by Jens Schüßler-2


Am 23.12.2017 um 17:20 schrieb Jens Schüßler:

> * Torsten Berger <[hidden email]> wrote:
>>> deaktiviert.
>>
>> oder /etc/sudoers:
>> #includedir /etc/sudoers.d
>>
>> ohne Raute werden die Konfigurationsdateien unter "includedir" nicht
>> abgearbeitet.
>> Alles andere mit Route wird allerdings als Kommentar verstanden.
>
> Es muß für Klicki-Bunti-Opfer schon schwer sein zu akzeptieren,
> daß verschiedene Sprachen verschiedene Syntax verwenden.
> BNeschwerst du dich auch darüber wenn deine HTML-Datei keine Rauten als
> Commenttags akzeptiert?
>

Mich als "Klicki-Bunti-Opfer" in diesem Kontext zu bezeichnen, bewegt
Dich nur näher an mein Killfile. Nicht nur verstehendes Lesen fällt Dir
offenbar schwer.

Bye Torsten

Reply | Threaded
Open this post in threaded view
|

Re: Symlink in cron.daily wird nicht ausgeführt

Tim Boneko
In reply to this post by Jens Schüßler-2
Am Freitag, den 22.12.2017, 10:02 +0100 schrieb Jens Schüßler:
>
> > For example, any file containing dots will be ignored.
> >              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Nach diesem Wortlaut dürfte imho die gesamte Datei keinen Punkt
enthalten. Das nenne ich mal autoritär...

Gruß,

   Tim (kein Kuschelpädagoge)