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
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