Page 1 of 1

[RESOLU] Petite question de script

Posted: 27 Nov 2014 09:35
by ZiEg
Bonjour,

j'ai un petit trouble qui commence à m'agacer :
ayant des utilisateurs MAC OS sur le NAS, des fichiers ._* sont créés (en gros chaque fichier sur le NAS a son pendant portant le même nom précédé de ._). Ceci est typiquement dû à MAC OS et rien ne peux y être fait.
Pour régler ce problème, une fois connecté en SSH, en rentrant

Code: Select all

find . -type f -name "._*" -exec rm "{}" \;
tous les fichiers ._* sont effacés.

Pour automatiser la chose je crée un fichier remove.sh que je place dans /mnt/Disque1 (/mnt/Disque1/remove.sh) dans lequel je place le code précédent qui fonctionne à merveille. Je fais un chmod -R 777 sur le fichier remove.sh pour le rendre executable par tous les utilisateurs.

Dans le WebGui, sous Système¦Avancé¦Cron, je rentre /mnt/Disque1/remove.sh dans la case commande, root dans la case utilisateur.
Quand j'enregistre et que j'execute..... rien ......

Merci de m'expliquer ce que j'aurais pu rater
Merci

Re: Petite question de script

Posted: 27 Nov 2014 09:58
by velivole18
Bonjour,

Moi je mettrais en 1ère ligne l'indicateur du shell utilisé :
#! /bin/sh
et sur la 2de ligne une ligne vide

et à partir le la 3ème ligne le code que l'on veut exécuter, donc pour toi le find ....
Sinon, je pense que les guillemets autour des accolades ne sont pas nécessaires ...

Tu peux faire le test aussi en lançant le script à partir du menu "Advanced|Command" pour voir ce que cela donne.

Cordialement.

Re: Petite question de script

Posted: 27 Nov 2014 10:23
by ZiEg
J'ai ajouter

#! /bin/sh en 1ere ligne de mon fichier....

Pas de changement toujours la meme chose

Re: Petite question de script

Posted: 27 Nov 2014 13:33
by velivole18
Bonjour,

Pardon, j'ai introduis une petite erreur dans ma ligne.
Essaie d'enlever l'espace entre #! et /bin/sh voir si cela fonctionne mieux.
#!/bin/sh

Cordialement.

Re: Petite question de script

Posted: 27 Nov 2014 13:54
by ZiEg
Alors j'ai eu la réponse dans le topic général :

Code: Select all

find . -type f -name "._*" -exec rm "{}" \;
la commande find va ëtre executée dans le répertoire local (à cause du point après la commande find). Le script s'executant à priori dans /usr/local/www, mes fichiers indésirables (qui se trouvent dans /mnt/Disque1/...) ne seront donc pas trouvés ni éliminés. le script correct est donc

Code: Select all

find /mnt/Disque1 -f name "._*" -exec rm "{}"\;
Testé dans Avancé¦Commande ca fonctionne. Reste a tester en version script sous cron

:) :)

Re: Petite question de script

Posted: 27 Nov 2014 16:28
by velivole18
Bonjour,

Heureux que la solution soit trouvée !

Mais que suis-je bête, la solution était assez évidente, surtout que j'utilise la commande find régulièrement à titre professionnel et privé, mais comment n'ai-je pas vu ce point là pour lequel je me fais aussi souvent avoir !!! :roll:
Attention aussi au temps d'exécution du script par rapport au délai entre 2 exécutions du cron.

Ne pas oublier de mettre [RESOLU] dans le titre du 1er post si tout fonctionne correctement. ;)

Cordialement.

Re: Petite question de script

Posted: 27 Nov 2014 16:39
by ZiEg
velivole18 wrote: Attention aussi au temps d'exécution du script par rapport au délai entre 2 exécutions du cron.
J'ai programmé le cron sur ce script pour être lancé toute les 6 heures..... je pense qui'il ne devrait pas y avoir de soucis de ce coté là ;)