Vraag Hoe een cron-taak instellen om een ​​shell-script uit te voeren?


Ik had een cron-baan ingesteld:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Het grootste probleem is dat er op het geplande tijdstip een fout is opgetreden: "mail is verzonden naar / var / spool / mail / lucky".

De inhoud van mijnbestand.sh is:

mkdir jh
cd jh 

31
2017-09-27 18:17


oorsprong


Dit kan je helpen: help.ubuntu.com/community/CronHowto - PeppeDAlterio
als mijnbestand.sh ingesteld als uitvoerbaar? - rogerdpack


antwoorden:


Dit is niet OK voor een script dat is ingesteld als een cron-taak:

mkdir jh
cd jh 

Je zou het volledige pad moeten geven waar jh map moet worden gemaakt. Ook moet u in dit pad rechten hebben om nieuwe bestanden / mappen te maken.

Uw script moet er bijvoorbeeld als volgt uitzien:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Ook /usr/bin/sh is niet het juiste pad voor sh. Het juiste pad is /bin/sh. U kunt dit controleren met whereis sh opdracht. En toch, je cron-baan zou er als volgt uit moeten zien:

20 * * * * /home/lucky/myfile.sh

Vergeet niet om het script uitvoerbaar te maken:

chmod +x /home/lucky/myfile.sh

46
2017-09-27 19:42



Awsome, redde mijn leven :) Mijn werkt zo goed. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1 - Louwki


Het pad waar dit de map naar lijkt te maken is / . Dit komt omdat het crontab vereist volledig pad naar map en bestanden  in alle bestanden die worden uitgevoerd.

Dus het pad in de myfile.sh zou moeten zijn

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh Deze regel is correct, maar u moet het pad controleren om te zien of sh bestaat in / usr / bin / sh of niet (gebruik which sh om het pad te zien waar sh bestaat; mijn was / bin / sh)

Als je haast hebt om te beginnen met het schrijven van crontab, heeft deze link best goede voorbeelden

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/


5
2017-09-27 19:53