Page 1 of 1

script auto

Posted: 04 Dec 2012 14:04
by TsyMiroro
B!

j'ai créé un script qui nettoie le disque de backup.

Code: Select all

nas4free:/mnt/data# ls -l
total 32816
drwxrwxr-x   2 root      operator       512 Nov  2 08:46 .snap
-r--------   1 root      wheel     33554432 Nov  2 08:47 .sujournal
drwxrwxr-x  10 jean-luc  admin          512 Nov 29 10:11 PUB
-rwxr-xr-x   1 root      wheel          559 Dec  4 15:35 cleaner.sh
drwxr-xr-x   6 root      wheel          512 Nov  2 11:10 cna

nas4free:/mnt/data# cat cleaner.sh 
#!/bin/sh
find /mnt/data/cna/ -type f -name "*.VOB" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.vob" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.dat" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.DAT" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.avi" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.MPG" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.mpg" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.mp4" -exec rm -rf {} \;
find /mnt/data/cna/ -type f -name "*.mp3" -exec rm -rf {} \;

nas4free:/mnt/data# 
Ce script enlève tout ce qui est encombrant du point de vue professionnel.
Le NAS étant pour un groupe de travail, et ce groupe ne produit pas de fichiers multimédia.

Le NAS est installé en embedded.

Si je me logge par ssh puis lance la commande, il n'y a pas de problème.

Si je tente de le mettre dans cron alors il y a l'erreur suivante

Code: Select all

Dec 4 15:44:16 	tahiry 	root: Failed to execute cron job '/mnt/data/cna/cleaner.sh'.
Aucune autre précision.
Image

après appui sur "exécuter maintenant"
Image

J'ai fait un "touch test.mp3" dans mon répertoire pour tester.
En console ça va.
En tant que tâche cron, ça ne marche pas, j'ai essayé "root" et "opérateur" comme utilisateur de la tâche cron

Comment diagnostiquer avec précision cette erreur?
Comment faire pour que ça marche?

@+

Re: script auto

Posted: 07 Dec 2012 22:15
by loulnux
La version embedded ne permet pas de modifier l'install et l'ajout de script, il faut pour cela faire une install permanente avec un swap, auquel cas tu peux conserver la main sur la configuration de manière permanente sur freebsd a l'instar d'une install linux

Re: script auto

Posted: 08 Dec 2012 00:17
by mtiburs
Tu peux faire des scripts avec une embedded, loulnux a raison mais ... on peut contourner le pb ;-)

Pour cela, il faut faire un dataset et y mettre ton utilisateur. Par exemple, si tu as un utilisateur "toto" tu fais pointer ton répertoire utilisateur "toto" sur /monpool/util/toto, et là tu pourras faire tout ce que tu veux !
En gros, ton répertoire avec tes scripts ne doit pas être sur ta clef mais sur le pool.

Re: script auto

Posted: 10 Dec 2012 09:19
by TsyMiroro
Le script est sur le pool
/mnt/data/cna/cleaner.sh
Le propriétaire du fichier est root, du groupe wheel

Je ne l'ai pas mis dans mon répertoire utilisateur car rsync va l'effacer, à moins de le mettre avec mes données.

Comme je l'ai dit, en ligne de commande (via un accès ssh) la commande ./cleaner.sh fonctionne.

C'est son automatisation (cron, via l'interface d'administration) qui refuse de fonctionner, sans que le logs donne une précision du pourquoi.

En parcourant le net, j'ai vu des scripts mais dedans il y a des boucles "if" que je n'ai pas.
Est-ce la raison?
Autre raison?

Re: script auto

Posted: 10 Dec 2012 11:52
by mtiburs
oups ! j'avais pas bien vu l'endroit de ton script !

Personnellement, je passe pas un utilisateur pour faire cela, et j'ai configuré bash dans le choix de l'interpréteur ainsi que le portail utilisateur. (éventuellement fais l'essai avec un utilisateur 'syst" et donne lui les droits nécessaire)

est-ce tu as autorisé le login root ? (peut-être que c'est utile pour faire cela)

pour le if dans le script, non, ça n'a rien a voir, ce n'est qu'une instruction parmi d'autres.

Si rien ne marche, fais ton touch test.mp3 directement dans la config du script, pour voir ce qu'il fait

Sinon, j'ai de mon coté, fais la même chose, j'ai fais un petit script qui fais un touch test.txt dans un de me répertoire, et ça marche, aucun soucis:

le script qui tue la mort :twisted:
touch /nas2/nas2_test/test.txt

un cron pour 11h35 :arrow:

# ls -lh /nas2/nas2_test/
total 1
-rw-r--r-- 1 root chaudanne 0B Dec 10 11:35 test.txt
je pense qu'il doit te manquer un p'tit truc quelque part :roll:

Re: script auto

Posted: 13 Jun 2013 05:34
by gmilad
Bonjour,

Petite réponse rapide pour ceux qui aurait le même problème :

Dans la configuration du cron dans la ligne du script il faut rajouter un ./ devant le nom du script sinon ça ne fonctionne pas donc pour ton exemple voici ce qu'il faut mettre :

Code: Select all

/mnt/data/cna/./cleaner.sh
Amicalement,
Gaëtan.