Je suis nouveau pour créer des emplois. Je lis un article sur la façon d’écrire un travail cron avec crontab. Donc, ma crontab ressemble à ceci:
1 * * * * /Users/apple/Desktop/wget/down.sh
ce qui signifie que chaque minute je veux exécuter le script: down.sh. Maintenant, le script fonctionne correctement manuellement. Le script est un programme simple qui télécharge un PDF depuis Internet:
#!/bin/bash
wget -U Mozilla -t 1 -nd -A pdf "http://www.fi.usj.edu.lb/images/stories/HoraireS08/3eli.pdf" -e robots=off;
Je ne sais pas pourquoi il ne fonctionne pas toutes les minutes une fois que le terminal me dit qu’il installe la nouvelle crontab.
quelqu’un peut m’aider s’il vous plait?
Solution: Merci à tous pour votre aide, la syntaxe comme mcalex devrait être * * / 1 * * * path / to / script si vous voulez qu’elle soit exécutée toutes les heures. Le travail cron fonctionnait normalement. Cependant, mon erreur était simplement d’écrire des permissions, en fait, lors de l’exécution de la commande wget, il était censé écrire le fichier pdf dans le répertoire courant qui est un répertoire système. J’ai donc résolu mon problème en naviguant simplement dans le répertoire Desktop avant d’exécuter la commande wget comme suit:
cd /Users/apple/Desktop/wget
et puis fais ce que je veux faire. PS: je devrais également inclure le chemin complet de la commande wget.
Merci à tous pour votre aide à nouveau 🙂
Avez-vous une faute de frappe? Il semble que vous ayez mal saisi Desktop?
Une autre chose à faire est de redirect le résultat de l’exécution du script vers un fichier afin de voir ce qui se passe comme ceci:
1 * * * * /Users/apple/Destop/wget/down.sh >> /tmp/cron.out
puis consultez le fichier pour voir ce qui se passe.
Lorsque vous mettez 1 dans la première colonne, celle-ci sera exécutée la première minute (de chaque heure). Afin de le faire fonctionner à chaque minute de chaque heure, vous devez définir la colonne des minutes comme suit: * / 1
Donc, votre ligne devrait lire:
*/1 * * * * /Users/apple/Desktop/wget/down.sh
liens de support: job all minute: https://bbs.archlinux.org/viewtopic.php?id=59180
travail toutes les 5 minutes: http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/
1 * * * * /Users/apple/Destop/wget/down.sh
À partir de cette entrée, le script ne fonctionnera jamais à chaque minute car il s’exécutera à la première minute de chaque heure.
Apportez cette modification à votre fichier crontab pour exécuter ce script toutes les minutes.
“* * * * * /Users/apple/Destop/wget/down.sh”
/bin/sh
pour exécuter des commandes. PATH
correct dans votre script? wget
n’est peut-être pas dans le PATH
par défaut ou il n’y a peut-être aucun PATH
. Essayez d’utiliser /path/to/wget
dans le script. Notez que télécharger le même fichier PDF une fois par minute est probablement une idée idiote, bien que …
Si votre tâche est en train d’écrire des choses sur le disque, faites attention à ce que la préférence système “Mettre le disque dur en veille lorsque cela est possible” ne soit pas cochée.
Cela empêchait l’exécution de mes tâches de sauvegarde cronjob.