Problème pour lancer un script bash avec cron

Bonjour,

J’ai ouvert un post récemment, où l’on m’a conseillé de le déplacer dans “programmation”

probleme-script-cron-t33422.html#p337994

Le but du script est de relever les quotas de chaque utilisateurs et d’en ressortir un pourcentage

Cependant par rapport au précédent fil, j’ai modifié le script de cette manière

[code]#!/bin/bash

nbusers=$(cat /etc/passwd | grep mdpu | cut -d : -f 1 | wc -l)
users=$(cat /etc/passwd | grep mdpu | cut -d : -f 1)

i=1

while [ $i -ne $(( ${nbusers}+1 )) ]
do
usersl=$(cat /etc/passwd | grep mdpu | cut -d : -f 1 | sed -n "$i"p)
Tuser[$i]=${usersl}
user=${Tuser[$i]}
qtot=$(repquota -a | grep ${user} | cut -d ‘-’ -f 3 | awk ‘BEGIN {FS = " "}{print $2}’)
quse=$(repquota -a | grep ${user} | cut -d ‘-’ -f 3 | awk ‘BEGIN {FS = " "}{print $1}’)
quseperc=$(( (${quse}*100)/${qtot} ))
echo ${Tuser[$i]}
echo ${quseperc} > /infodb/users/quota/${user}
i=$(($i+1))
done[/code]

J’excute maintenant ma tache cron de cette manière :

Et les log m’indique :

[quote]May 20 14:35:01 sd-19756 /USR/SBIN/CRON[5850]: (root) CMD (/usr/bin/diskuse >> /var/log/get_user_space.log)
May 20 14:35:01 sd-19756 /USR/SBIN/CRON[5849]: (CRON) error (grandchild #5850 failed with exit status 1)
[/quote]

Je ne trouve pas mon erreur :confused:

Merci à vous d’avoir pris le temps de me lire

Edit : Je suis sur debian squeeze, mdpu est la partition où les quotas sont activés (monter en /mdpu)
Les utilisateurs sont dans le groupe mdpu

Edit 2 :

Voici ce que me retourne le script avec bash -x :

[quote]++ cat /etc/passwd
++ grep mdpu
++ cut -d : -f 1
++ wc -l

  • nbusers=2
    ++ cat /etc/passwd
    ++ grep mdpu
    ++ cut -d : -f 1
  • users=‘test2
    moi’
  • i=1
  • ‘[’ 1 -ne 3 ‘]’
    ++ cat /etc/passwd
    ++ grep mdpu
    ++ cut -d : -f 1
    ++ sed -n 1p
  • usersl=test2
  • Tuser[$i]=test2
  • user=test2
    ++ repquota -a
    ++ cut -d - -f 3
    ++ grep test2
    ++ awk ‘BEGIN {FS = " "}{print $2}’
  • qtot=5000000
    ++ repquota -a
    ++ grep test2
    ++ cut -d - -f 3
    ++ awk ‘BEGIN {FS = " "}{print $1}’
  • quse=4553232
  • quseperc=91
  • echo test2
    test2
  • echo 91
  • i=2
  • ‘[’ 2 -ne 3 ‘]’
    ++ cat /etc/passwd
    ++ grep mdpu
    ++ cut -d : -f 1
    ++ sed -n 2p
  • usersl=moi
  • Tuser[$i]=moi
  • user=moi
    ++ repquota -a
    ++ grep moi
    ++ cut -d - -f 3
    ++ awk ‘BEGIN {FS = " "}{print $2}’
  • qtot=9000000
    ++ repquota -a
    ++ grep moi
    ++ cut -d - -f 3
    ++ awk ‘BEGIN {FS = " "}{print $1}’
  • quse=4
  • quseperc=0
  • echo moi
    moi
  • echo 0
  • i=3
  • ‘[’ 3 -ne 3 ‘]’
    [/quote]

Edit 3 : Le script, s’il est lancé manuellement fonctionne :confused:

[size=85]UUOC detected ![/size]

Il n’y a rien après dans ton script ?

[quote=“MisterFreez”][size=85]UUOC detected ![/size] -> :question:

Il n’y a rien après dans ton script ?[/quote]

Non, le script doit juste envoyer dans un fichier le pourcentage
avec : echo ${quseperc} > /infodb/users/quota/${user}

Sinon, dans le cron j’ai mis ceci :

Et le fichier testecho ne se creer pas :question:

Ce fichier existe ? Il a les bons droits ?

Ce fichier existe ? Il a les bons droits ?

Problème résolu, le script se lance correctement

J’ai placé cette ligne :

dans le fichier

/etc/crontab

Et cela fonctionne.

Merci MisterFreez