Exécuter un fichier avec le cron (non php)
Fermé
diabli73
Messages postés
6
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
20 octobre 2008
-
20 oct. 2008 à 17:28
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 - 20 oct. 2008 à 17:55
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 - 20 oct. 2008 à 17:55
A voir également:
- Exécuter un fichier avec le cron (non php)
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
4 réponses
(Pabix)
Messages postés
578
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
27 octobre 2009
81
20 oct. 2008 à 17:35
20 oct. 2008 à 17:35
Bonjour, les 2>&1 et > sont de la syntaxe bash, donc interprétée par bash. cron réclame seulement une commande telle quelle et non des redirections d’entrée-sortie.
Faites un fichier #!/bin/bash contenant les bonnes instructions et exécutez CE script avec cron.
et puis êtes-vous sûr de vouloir lancer ça à chaque minute ? C’est beaucoup :)
Faites un fichier #!/bin/bash contenant les bonnes instructions et exécutez CE script avec cron.
et puis êtes-vous sûr de vouloir lancer ça à chaque minute ? C’est beaucoup :)
diabli73
Messages postés
6
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
20 octobre 2008
20 oct. 2008 à 17:40
20 oct. 2008 à 17:40
non je vais le le lancer qu'une fois dans la journée mais c'est pour faire un test que je le lance chaque minute.
Je vais tout de suite essayé ce que vous m'avez dit.
merci
Je vais tout de suite essayé ce que vous m'avez dit.
merci
diabli73
Messages postés
6
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
20 octobre 2008
20 oct. 2008 à 17:50
20 oct. 2008 à 17:50
cela fonctionne. Merci. Par contre j'ai une autre question vous allez peut etre pouvoir m'aider (c'est un problème de chemin je pense)
Mon fichier shell sert a lancer un serveur.
je fais un * * * * * /usr/local/sbin/S3DServer_script start >> /root/cmd.log
et en shell cela fonctionne.
par contre quand je le fais en cron j'ai le message
Starting S3DServer Advanced 1.5.1 for Linux
Couldnt find S3DServer-1.5.1-Advanced-Linux
alors que S3DServer-1.5.1-Advanced-Linux se trouve dans /usr/local/sbin/ (le rep ou est lancé le script dans le cron).
le code de la méthode est :
Mon fichier shell sert a lancer un serveur.
je fais un * * * * * /usr/local/sbin/S3DServer_script start >> /root/cmd.log
et en shell cela fonctionne.
par contre quand je le fais en cron j'ai le message
Starting S3DServer Advanced 1.5.1 for Linux
Couldnt find S3DServer-1.5.1-Advanced-Linux
alors que S3DServer-1.5.1-Advanced-Linux se trouve dans /usr/local/sbin/ (le rep ou est lancé le script dans le cron).
le code de la méthode est :
start) if [ -e $S3DServerLife ]; then echo "S3DServer Advanced 1.5.1 for Linux seems to be running"; echo "If you are sure the server is not running, delete $S3DServerLife" exit 1 else echo "Starting S3DServer Advanced 1.5.1 for Linux" if [ -e S3DServer-1.5.1-Advanced-Linux ]; then if [ ! -x S3DServer-1.5.1-Advanced-Linux ]; then echo "S3DServer-1.5.1-Advanced-Linux is not executable, trying to set it" chmod u+x S3DServer-1.5.1-Advanced-Linux fi if [ -x S3DServer-1.5.1-Advanced-Linux ]; then ./S3DServer-1.5.1-Advanced-Linux & for c in $(seq 1 300); do if [ ! -e $S3DServerLife ]; then echo -n "." sleep 1 else echo "done" break fi done else echo "S3DServer-1.5.1-Advanced-Linux is not executable, fix this" exit 4 fi else echo "Couldnt find S3DServer-1.5.1-Advanced-Linux" exit 5 fi fi ;;
(Pabix)
Messages postés
578
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
27 octobre 2009
81
20 oct. 2008 à 17:55
20 oct. 2008 à 17:55
Non, le cron ne lance pas le script depuis un répertoire quelconque.
Vous devriez utiliser « cd /usr/local/sbin » en début de script (et ensuite « cd - » pour revenir au répertoire précédent si besoin)
D’autre part évitez $(seq 1 300) et préférez {1..300} qui ne fait pas appel à une commande GNU inutilement (c’est du bash).
Vous devriez utiliser « cd /usr/local/sbin » en début de script (et ensuite « cd - » pour revenir au répertoire précédent si besoin)
D’autre part évitez $(seq 1 300) et préférez {1..300} qui ne fait pas appel à une commande GNU inutilement (c’est du bash).