Je souhaite récupérer le contenu d'un script PHP sur mon serveur deux fois par jour, en modifiant une variable de requête lang
pour définir la langue que nous voulons et enregistrer ce contenu dans des fichiers spécifiques à deux langues. Voici ma crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
Le problème est que seule la première ligne de commande wget est en cours d'exécution (ou pour être précis: le seul fichier en cours d'écriture l'est /path/to/file-sv.sql
). Si je change la deuxième et la troisième ligne, /path/to/file-en.sql
est écrit à la place. La première ligne fonctionne toujours comme prévu, peu importe où elle se trouve.
J'ai ensuite essayé de l'utiliser lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
en vain; seule la première ligne lynx a été exécutée avec succès. Même mélanger wget et lynx n'a pas changé cela!
Devenir un peu désespéré! Suis-je en train de manquer quelque chose? Il existe des milliers d'articles sur crontab (combiné avec) wget ou lynx, mais tous semblent couvrir les configurations et la syntaxe de base. Quelqu'un at-il une idée de ce que je fais mal?
Merci,
Alexander
Réponses:
Essayez d'ajouter une nouvelle ligne à la fin de votre crontab.
la source
Il y a quelque chose dans le texte qui ne va pas. Modifiez votre crontab dans vim puis affichez les caractères invisibles.
Vous devriez pouvoir le voir puis le corriger.
la source
# crontab -e
EDITOR=vim crontab -e
$
à la fin de chaque ligne?Essayez d'ajouter une redirection, pour déboguer crontab (ou lire le courrier racine):
Exécutez également 'wget -O /path/to/file-en.sql " http://mydomain.com/path/?lang=en "' à partir de la console.
Utilisez également 'crontab -e' pour valider le nouveau crontab.
Essayez également de supprimer la ligne qui ne fonctionne pas et de la retaper à partir du clavier.
Corntab de sauvegarde et commande d'exécution:
la source
/tmp/crontab_ouptput 2> /tmp/crontab_error
ne fonctionne que pour la première ligne. L'exécution de la commande à partir de la console fonctionne très bien. J'ai réécrit tout le dossier à mains nues, mais rien n'a changé.Je viens de passer du temps à essayer les réponses ci-dessus (ajout de nouvelles lignes, suppression de nouvelles lignes, etc.) sur un système exécutant cronie . Enfin, il existe un bogue dans cronie 1.5.3 qui exécute uniquement le premier travail cron pour chaque utilisateur . Il est corrigé dans 1.5.4
https://github.com/cronie-crond/cronie/issues/30
J'espère que cela fait gagner du temps à quelqu'un ...
la source