Chmod en masse rapide

Chmod en masse rapide - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-03-2010 à 17:41:30    

Hello,
 
Dans l'optique d'un futur archivage de boites mails, je souhaiterais en placer une petite centaine en 0000, histoire qu'elles soient inaccessibles le temps de l'archivage.
Evidemment un chmod 0000 xxx en ligne de commande serait fastidieux, aussi j'ai pensé à un script.
 
Je souhaiterais que ce script fasse appel a un fichier texte qui contiendrais la liste des boites (des folders) à passer en 0000. Un peu à l'inverse d'une redirection qu'aurai donné ce genre de commande ls -a > lsdurep.text.
 
Etant plutot neuneu dans le domaine, j'ai pondu un truc pourri de ce genre
 
#!/bin/bash
# scriptmail : Script de desactivation de boite en masse
echo Modification des droits des boites en 0000
 
chmod 0000 /root/scriptmail/test;
 
 
Mais je me vois mal placer une ligne par boite, des idées ? :o

Reply

Marsh Posté le 26-03-2010 à 17:41:30   

Reply

Marsh Posté le 26-03-2010 à 17:44:40    

Une boucle  [:airforceone]


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 26-03-2010 à 17:48:47    

Fork Bomb a écrit :

Une boucle  [:airforceone]


 
Hep  :hello:  
 
Je vais tester avec la boucle while, merci

Reply

Marsh Posté le 26-03-2010 à 17:50:54    

man xargs :o
+ un cat d'un fichier contenant le nom des fichieres à chmoder +  pipe dans le xargs


Message édité par o'gure le 26-03-2010 à 17:51:41

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-03-2010 à 17:53:22    

#!/bin/bash
#  
# scriptmail.bash : Script de désactivation de boîtes en masse
#  
# 2010.03.26   Franky4doigts   Création
#  
 
echo "Modification des droits des boîtes en 0000.."
cat lsdurep.text | while read d; do chmod 0000 $d; done
 
[ $? -eq 0 ] && echo "Fait." && cs=0 || { echo "Erreur !"; cs=1; }
 
exit $cs

Reply

Marsh Posté le 26-03-2010 à 18:03:11    

Genial
 
Et ça me servira meme pour faire du tarball, merci  :jap:

Reply

Marsh Posté le 26-03-2010 à 18:04:48    

p-seeker23 a écrit :

#!/bin/bash
#  
# scriptmail.bash : Script de désactivation de boîtes en masse
#  
# 2010.03.26   Franky4doigts   Création
#  
 
echo "Modification des droits des boîtes en 0000.."
cat lsdurep.text | while read d; do chmod 0000 $d; done
 
[ $? -eq 0 ] && echo "Fait." && cs=0 || { echo "Erreur !"; cs=1; }
 
exit $cs



pourquoi vouloir réinventer xargs ? [:pingouino]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-03-2010 à 18:52:23    

o'gure a écrit :

pourquoi vouloir réinventer xargs ?[:pingouino]


Parce que :  

Franky4doigts a écrit :

Et ça me servira meme pour faire du tarball


 
Cette forme permet de faire plus de choses, avec un meilleur contrôle, par exemple :  
 

#!/bin/bash
#  
# scriptmail.bash : Script de désactivation de boîtes en masse
#  
# 2010.03.26   Franky4doigts   Création
#  
 
tmpF=/tmp/$$.$RANDOM
echo "0 0 0" >$tmpF
 
echo "Modification des droits des boîtes en 0000 et archivage :"
cat lsdurep.text | while read d; do
    read cnt rchmod rtar <$tmpF
    echo -e "chmod $d .. \c"
    chmod 0000 $d;  
    if [ $? -eq 0 ]; then
        echo "fait."
        echo -e "tar $d .. \c"
        tar cf ${d}.tar $d
        [ $? -eq 0 ] && echo "fait." && ((cnt++)) && rm -rf $d || { echo "erreur !"; ((rtar++)); }
    else
        echo "erreur !"; ((rchmod++));
    fi
    echo "$cnt $rchmod $rtar" >$tmpF
done
 
read cnt rchmod rtar <$tmpF; cs=$((rchmod+rtar))
if [ $cs -eq 0 ]; then
    echo "\nTerminé avec succès, $cnt boîtes traitées."
else
    echo "\nTerminé avec erreurs. chmod : $rchmod échec(s), tar : $rtar échec(s)"
    echo "$cnt boîte(s) archivées avec succès."
fi
 
exit $cs


Reply

Marsh Posté le 26-03-2010 à 19:09:37    

Concernant l'archivage , as tu une idée de la réaction du MDA lorsqu'il voudra déposer des mails sur des boites inaccessibles?
Vas t'il attendre et laisser les mails au niveau du MTA ou simplement les faire disparaitre?


---------------
Intermittent du GNU
Reply

Marsh Posté le 26-03-2010 à 20:13:22    

+1 mikala, ce genre de choses n'est pas une bonne idée.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed