Aller au contenu

nexius2

Membres
  • Compteur de contenus

    458
  • Inscription

  • Dernière visite

  • Jours gagnés

    5

Tout ce qui a été posté par nexius2

  1. pour moi, cette version fonctionne, mais il vaut mieux avoir plusieurs retours et attendre celui de BUD. pour le probleme de chemin /homes/admin, je viens de constater que c'est un lien et non pas un dossier reel. le lien pointe vers /volume1/@fake_home_link qui est marquer en rouge dans putty....parce qu'il n'existe pas... youpi ! il suffit de recreer /volume1/@fake_home_link/admin et plus de problems ! theperfectman est ce que tu peux verifier l'existance de ce dossier via putty sur ton nas, et c'est quel OS que tu as?
  2. Je viens de tester en putty, avec et sans validation, aucun problème de noté, qu'est ce qu'il se passe de ton côté? Je vais essayer de re éditer le poste pour remettre le code bien... attention a la demande de date et de confirmation, il faut impérativement que la variable soit "Oui" ou "Yes" en tenant compte des majuscules ! je verrais pour faire en sorte qu'il prenne la reponse, majuscule ou pas plus tard. et pour ce qui est d'avoir 2 scripts, peut etre qu'il serait sympa d'avoir les variable en input en dehors de la commande, genre "sh video.renommer.film.sh /maj_conf:Yes / date_in_log:yes" justement pour eviter plusieurs scripts identique... pour ce qui est de l'erreur chdir /var/services/homes/admin, je l'ai en me connectant a putty en admin sous DSM 5.0 update 5, donc je pense que l'erreur est plus lier au DSM qu'autre chose... je verrais peut etre pour integrer une identification de l'OS pour eviter ce genre d'erreur
  3. Hello, C'est bud77 qui est a l'origine du script, je lui laisse le soin de mettre a dispo cette version (V11.2) s'il le souhaite! Les nouveautés sont: - Rajout de "" et de "," dans le traitement de fin de fichier - possibilité de rajouter ou non la date dans le log - possibilité d'activer ou non la confirmation de renommage - double vérifier au cas ou le fichier est déjà présent S'il ne le met pas a dispo, tu as juste a le copier ( il est dans le commentaire juste au dessus), ne pas oublier d'autoriser l'exécution et le lancer en tant qu'admin. Pour activer ou non la date, il suffit de mettre oui ou non dans la variable $add_date_in_log au début du script. Pareil pour la confirmation sur la variable $maj_conf. Attention, la confirmation ne peux pas être réclamer si le script est lancer via une tâche planifié
  4. #!/bin/ash ########################################################################################### #............ Script pour renommer les films de Video Station..V11.2......................# #.........................................................................................# #............... Permet de renommer les fichiers sous le nom officiel du films............# ########################################################################################### ########################################################################################### # Paramettre du script # ########################################################################################### MAJ_CONF="Yes" # mettre Yes pour avoir la demande de confirmation de renommage ADD_DATE_IN_LOG="Yes" # mettre Yes pour afficher la date dans le log LOG_PATH=/volume1/System/Scripts_LOG/ # chemin du log LOG_NAME=Videostation.renommer.films.sh # nom du fichier log NOW=$(date +"%F") # declaration de la date - ne pas changer ########################################################################################### # declaration du nom du log # ########################################################################################### if [ "$ADD_DATE_IN_LOG" == "Oui" ] || [ "$ADD_DATE_IN_LOG" == "Yes" ]; then LOG_FILE="$LOG_PATH$LOG_NAME.$NOW.log" else LOG_FILE="$LOG_PATH$LOG_NAME.log" fi ########################################################################################### # Declaration de la fonction de renommage # ########################################################################################### start_rename () { ########################################################################################### # Recuperation des infos DB et mise en variable # ########################################################################################### $SUCMD '/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "select c.id,title,path,year from movie a, video_file c where c.mapper_id=a.mapper_id order by c.id desc;"' | while read ENTRY do DB_ID=$(echo $ENTRY|cut -f1 -s -d"|") TITRE=$(echo $ENTRY|cut -f2 -s -d"|") CHEMIN=$(echo $ENTRY|cut -f3 -s -d"|") YEAR=$(echo $ENTRY|cut -f4 -s -d"|") ########################################################################################### # Definition du nouveau nom (remplacement espace par des "." )et du dossier courant # ########################################################################################### NEW_TITRE=$(echo $TITRE |sed 's/,//g' |sed 's/://g' |sed 's/;//g' |sed -e 's/ /./g' |sed -e 's/?//g'|sed -e 's/*/-/g').$YEAR DOSSIER=$(dirname "$CHEMIN") EXTENSION=${CHEMIN##*.} ########################################################################################### # Nettoyage du nom de fichier final : accents, "&" , "," , ":" # ########################################################################################### NEW_NAME=$(echo $NEW_TITRE.$EXTENSION |sed 's/&/Et/g' |sed -e 's/$//g' |sed "s/'/./g" |sed 's///-/g' |sed "s/,/./g" |sed 's/à/a/g' |sed 's/â/a/g' |sed 's/ç/c/g' |sed 's/é/e/g' |sed 's/è/e/g' |sed 's/ê/e/g' |sed 's/ë/e/g' |sed 's/î/i/g' |sed 's/ï/i/g' |sed 's/ô/o/g' |sed 's/ö/o/g' |sed 's/œ/oe/g' |sed 's/Œ/oe/g' |sed 's/ù/u/g' |sed 's/ü/u/g' |sed 's/Â/A/g' |sed 's/Ç/C/g' |sed 's/É/E/g' |sed 's/È/E/g' |sed 's/Ê/E/g' |sed 's/Ë/E/g' |sed 's/Î/I/g' |sed 's/Ï/I/g' |sed 's/Ô/O/g' |sed 's/Ö/O/g' |sed 's/Ù/U/g' |sed 's/Ü/U/g' |sed -e 's/À/A/g' |sed -e 's/·/./g' |sed -e 's/’/./g') NEW_PATH=$DOSSIER/$NEW_NAME NEW_PATH2='$NEW_PATH' ########################################################################################### # On verifie si le nom doit etre modifie # ########################################################################################### if [ "$CHEMIN" == "$NEW_PATH" ]; then echo $CHEMIN deja OK, pas de MaJ else ########################################################################################### # Demande de MaJ # ########################################################################################### ########################################################################################### # on verifie si le fichier exist deja # ########################################################################################### if [ -e "$NEW_PATH" ]; then echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- echo "fichier $NEW_PATH exist deja" else echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- # echo $DB_ID echo "Renommer $CHEMIN <-- en --> $NEW_PATH" ########################################################################################## # On verifie si une confirmation est demandé # ########################################################################################## if [ "$MAJ_CONF" == "Oui" ] || [ "$MAJ_CONF" == "Yes" ]; then read -p 'Mise a jour du fichier ? (o/n)' MAJ </dev/tty if [ "$MAJ" == "o" ] then ########################################################################################## # On renomme le fichier, puis on met a jour la DB # ########################################################################################## mv "$CHEMIN" "$NEW_PATH" synoindex -d "$CHEMIN" SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"' $SUCMD "$SQLCMD" synoindex -a "$NEW_PATH" fi else ########################################################################################## # On renomme le fichier, puis on met a jour la DB # ########################################################################################## mv "$CHEMIN" "$NEW_PATH" synoindex -d "$CHEMIN" SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"' $SUCMD "$SQLCMD" synoindex -a "$NEW_PATH" fi fi fi done } ########################################################################################### # Check du user = admin ou root # ########################################################################################### CHECK_USER=$(whoami) case $CHECK_USER in admin) SUCMD=eval start_rename | tee $LOG_FILE;; root) SUCMD="su - admin -c" start_rename | tee $LOG_FILE;; *) echo "Ce script doit etre lance avec les user root ou admin" exit esac voici la derniere version. j'ai rajouter le traitement des "/" et des ",", dans le fichier final, la possibilité de rajouter la date dans le log, la possibilité de demander ou pas la confirmation de renommage, la double verif au cas ou un fichier porterais deja le meme nom.
  5. ah bas oui, un truc dans ce gout la.. :-) Merci beaucoup pour l'aide!
  6. ah bas voila... super merci, ca marche nickel ! ;-) ya moyen de faire une zone d'exeption avec find? je trouve le ! pour exclure un type de fichier, mais si c'est un dossier que je veux exclure? par exemple #recycle ... la fonction prune marche sur les syno, ca doit donner quelque chose comme ca: find "$rep" "/volume1/video/#recycle/" -prune -o -iname 'Thumbs.db' -delete -print >& "$LOG_FILE"
  7. bon.... pas moyen de faire un truc propre... voici ce que j'ai, ca fonctionne... ca ira bien... #!/bin/sh LOG_FILE=/volume1/System/System_Logs/delete.thumbs.db.sh.log rep=/volume1/NetBackup find $rep -iname 'Thumbs.db' -print | tee $LOG_FILE find $rep -iname 'Thumbs.db' -delete
  8. meme resultat.... j'ai meme essayer de demander le log direct apres la commande: find $rep -iname 'Thumbs.db' -print0 | xargs -0 -t rm | tee $LOG_FILE toujours pareil...aucun retour de suppression
  9. on est 2 alors ! :-) dans le log de sortie, si je change le codage en UTF8, il devient....vide....et effectivement, il fait 0 byte.... mais alors je n'ai pas les fichier supprimé dans mon log la.... y'a t'il moyen de loguer tout?
  10. oui, pour etre sur, je le supprime avant.... et voici ce qu'il contient s羪먀
  11. #!/bin/sh LOG_FILE=/volume1/System/System_Logs/delete.thumbs.db.sh.log ( rep=/volume1/NetBackup find $rep -iname 'Thumbs.db' -delete ) 2>&1 | tee $LOG_FILE bon, ca marche, mis a part que je revient sur mon probleme de log... j'ai en sortie des symboles...
  12. exact! et je me disait que si j'avais un fichier disont, IThumbs.dbo, il ne serais du coup, pas supprimé....sauf qu'en fait, il n'ai meme pas pris en compte.. visiblement, le find prend le fichier (ou dossier) avec cet exact formulation et pas autre chose.... donc je peux faire un -delete :-)
  13. pourquoi des mv... juste par peur de supprimé quelque chose qui porterais un nom similaire. je vais me servir de ce script pour d'autres choses et j'ai pas envie de perdre de données. je vais essayer ton approche... je suppose que le 2ieme $rep est la destination en fait?
  14. effectivement, y'a du mieux ! pour les quotes, ca ne change rien j'ai sorti la variable du "bloc" et la, j'ai au moins le log qui se créer... par contre, il contient "w羪먀"
  15. mon coté parano, imagine un fichier contient les lettres"thumbs.db"... pouf, je le perd.... dans mon cas, il est juste deplacer.... accessoirement, je peux m'en servire pour deplacer d'autre fichier le log, c'est par ce que je log tout et qu'en plus, j'ai le meme probleme sur un autre script...
  16. hello il y a plein de fichiers thumbs.db sur mon nas... et ca m'enerve... du coup, je me suis dit que j'allais faire un script que je lancerais via tache planifier regulierement pour me debarraser de ces petites betes. seulement voila, je voudrais loger tout ca et j'ai un truc que je ne vois pas qui me bloque (j'ai exactemement le meme probleme sur un autre script en plus...) #!/bin/sh ( rep="/volume1/NetBackup" repBck="/volume1/DATA/temp" LOG_FILE="/volume1/System/System_Logs/delete.thumbs.db.sh.log" find $rep -iname 'Thumbs.db' -exec mv '{}' $repBck/ ; ) 2>&1 | tee $LOG_FILE si je met la variable $LOG_FILE, ca ne marche pas, si je met direct le fichier, ca marche.... pourquoi?
  17. exact, ton test verifie si le fichier est bien nommé, mon test verifie s'il exist deja... mais je vais pauffiner un peu, il fait la difference entre majuscule et minuscule, donc si il y a un ".MKV", il peux aussi y avoir un ".mkv" maintenant, il n'y aura plus de suppressions, ca evite les betises ;-) j'ai mis ce probleme de coté pour le moment. mais je ne le lance que par tache planifié. en root, j'ai l'erreur, en admin, plus rien... je ne comprend pas pkoi je ne peux changer le log par une variable... il me dit que le fichier n'existe pas... si je fais un test en command sur un linux, ca marche bien, je me demande si c'est pas le case qui donne une reaction de ce type. CHECK_USER=$(whoami) case $CHECK_USER in admin) SUCMD=eval start_rename | tee "$LOG_FILE";; root) SUCMD="su - admin -c" start_rename | tee "$LOG_FILE";; *) echo "Ce script doit etre lance avec les user root ou admin" exit esac evidement, la variable est declarer debut du fichier LOG_FILE="/volume1/System/Scripts/Videostation.renommer.films.log"
  18. alors, pour l'erreur FATAL, lorsque le script est lancé en admin, elle disparais. d'un autre coté, je trouve normal qu'elle soit presente en root vu que le message complet fait reference a "/var/services/homes/admin". je laisse tel quel pour le moment. en ce qui concerne les fichier doublon ou fichier deja present. ta commande (si dessous) ne permet pas de verifier la presence d'un fichier identique au resultat du traitement if [ "$CHEMIN" == "$NEW_PATH" ] then echo $CHEMIN deja OK, pas de MaJ avec "if [ -e "$NEW_PATH" ];" j'arrive a prendre en compte tout les cas que j'ai referencé. prochaine etape: les logs....
  19. le user admin est pas locké, je m'en sert en ce moment... et c'est root qui lance mon script j'avais bien compris le pourquoi de la confirmation, mais trop chiant quand il y a trop de video ;-) j'avais vu cette fonction, mais visiblement, ca n'a pas marché.... cela dit, ce que j'ai rajouté marche de façon aleatoire... je cherche pourquoi.... c'est par ce qu'il ne fait quasiment pas d'erreur que je voudrais retourner tout ce qui n'est pas OK dans un autre log...
  20. alors, le script va prendre en compte absolument toutes les bibliotheque qui sont declarer comme film (donc dans mon cas, dessin annimés / moto / films). c'est tres bien, c'est ce que je cherche. l'erreur "FATAL..." est tres facilement corrigeable, je termine 2 - 3 test et je republie le script. d'ailleur, y'a pas le numero de version dedans, c'etait bien la V10? le check du user root ou admin est vraiment utile? parce qu'a part rediriger le log, ca ne sert pas trop.... perso, j'ai mis une variable avec un chemin pour le log. sinon, oui, videostation est bien a jour ! je viens de trouver un bug: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Renommer /volume1/video/Films/moi cesar/Moi.Cesar.10.ans.1/Moi.Cesar.10.ans.1/Moi.Cesar.10.ans.1/2.139.m.2003.avi <-- en --> /volume1/video/Films/moi cesar/Moi.Cesar.10.ans.1/Moi.Cesar.10.ans.1/Moi.Cesar.10.ans.1/Moi.Cesar.10.ans.1/2.139.m.2003.avi le fichier etait "Moi César... 1m39.avi" -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Renommer /volume1/video/Films/50-50/50/50/50/50.2011.avi <-- en --> /volume1/video/Films/50-50/50/50/50/50/50.2011.avi le fichier etait "50-50.avi" .... le voici mais il y a encore 2-3 trucs a corriger: #!/bin/ash ########################################################################################### #............ Script pour renommer les films de Video Station..V11........................# #.........................................................................................# #............... Permet de renommer les fichiers sous le nom officiel du films............# ########################################################################################### ########################################################################################### # Declaration de la fonction de renommage # ########################################################################################### start_rename () { ########################################################################################### # Declaration du chemin du log # ########################################################################################### LOG_FILE=/volume1/System/Scripts/Videostation.renommer.films.log ########################################################################################### # Recuperation des infos DB et mise en variable # ########################################################################################### $SUCMD '/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "select c.id,title,path,year from movie a, video_file c where c.mapper_id=a.mapper_id order by c.id desc;"' | while read ENTRY do DB_ID=$(echo $ENTRY|cut -f1 -s -d"|") TITRE=$(echo $ENTRY|cut -f2 -s -d"|") CHEMIN=$(echo $ENTRY|cut -f3 -s -d"|") YEAR=$(echo $ENTRY|cut -f4 -s -d"|") ########################################################################################### # Definition du nouveau nom (remplacement espace par des "." )et du dossier courant # ########################################################################################### NEW_TITRE=$(echo $TITRE |sed 's/,//g' |sed 's/://g' |sed 's/;//g' |sed -e 's/ /./g' |sed -e 's/?//g'|sed -e 's/*/-/g').$YEAR DOSSIER=$(dirname "$CHEMIN") EXTENSION=${CHEMIN##*.} ########################################################################################### # Nettoyage du nom de fichier final : accents, "&" , "," , ":" # ########################################################################################### NEW_NAME=$(echo $NEW_TITRE.$EXTENSION |sed 's/&/Et/g' |sed -e 's/$//g' |sed "s/'/./g" |sed 's/à/a/g' |sed 's/â/a/g' |sed 's/ç/c/g' |sed 's/é/e/g' |sed 's/è/e/g' |sed 's/ê/e/g' |sed 's/ë/e/g' |sed 's/î/i/g' |sed 's/ï/i/g' |sed 's/ô/o/g' |sed 's/ö/o/g' |sed 's/œ/oe/g' |sed 's/Œ/oe/g' |sed 's/ù/u/g' |sed 's/ü/u/g' |sed 's/Â/A/g' |sed 's/Ç/C/g' |sed 's/É/E/g' |sed 's/È/E/g' |sed 's/Ê/E/g' |sed 's/Ë/E/g' |sed 's/Î/I/g' |sed 's/Ï/I/g' |sed 's/Ô/O/g' |sed 's/Ö/O/g' |sed 's/Ù/U/g' |sed 's/Ü/U/g' |sed -e 's/À/A/g' |sed -e 's/·/./g' |sed -e 's/’/./g') NEW_PATH=$DOSSIER/$NEW_NAME NEW_PATH2='$NEW_PATH' ########################################################################################### # On verifie si le nom doit etre modifie # ########################################################################################### if [ "$CHEMIN" == "$NEW_PATH" ] then echo $CHEMIN deja OK, pas de MaJ else ########################################################################################### # Demande de MaJ # ########################################################################################### if [ -f "$NEW_PATH" ] then echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- echo "fichier $NEW_PATH exist deja" else echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- # echo $DB_ID echo "Renommer $CHEMIN <-- en --> $NEW_PATH" # read -p 'Mise a jour du fichier ? (o/n)' MAJ </dev/tty # if [ "$MAJ" == "o" ] # then ########################################################################################## # On renomme le fichier, puis on met a jour la DB # ########################################################################################## mv "$CHEMIN" "$NEW_PATH" synoindex -d "$CHEMIN" SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"' $SUCMD "$SQLCMD" synoindex -a "$NEW_PATH" # fi fi fi done } ########################################################################################### # Check du user = admin ou root # ########################################################################################### CHECK_USER=$(whoami) case $CHECK_USER in admin) SUCMD=eval start_rename |tee /volume1/System/Scripts/Videostation.renommer.films.log;; root) SUCMD="su - admin -c" start_rename |tee /volume1/System/Scripts/Videostation.renommer.films.log;; *) echo "Ce script doit etre lance avec les user root ou admin" exit esac j'ai rajouter le numero de version ainsi que la fonction qui verifie si le fichier existe deja.... ca m'aurait evité de perdre toutes mes courses de motogp... il me reste a corriger le chemin pour le log que je voudrais mettre en variable il y a toujours une erreur "su: can't chdir to home directory '/var/services/homes/admin'" ca doit etre du au SUCMD je pense... j'aimerais egalement crer un 2ieme log qui ne contiendrais que les erreurs ou modifications, histoire de jeter un oeil plus rapide...
  21. 5) j'ai compris, ca ne scan que la BD partie movie, donc toutes bibliotheques ou type de video = "film" pour info, sous DSM 5.0-4493 update 5 j'ai aussi le FATAL: role "admin" does not exist je vais tester avec ce que tu as proposer plus tot voir ce que ca donne...
  22. 1) super ! 2)je dirais: if [ "$MAJ" == "o" ] then fi 3)genial! 4)ok, pas grave... 5) merdoum, du coup, tu fais comment avec les series ou autres video qui sont dans le partage video? Edit: t'as corrigé avant que je redige, mais j'avais bien trouvé! ;-)
  23. hello, j'ai quelques petites questions 1) comment ce comporte le script face au film deja bien nommer? parse que la premiere fois qu'on le lance, il renomme OK, mais si on le relance plus tard pour les nouveaux films ajouter? 2) on peut retirer la confirmation de renommage? avoir 1000 confirmation, c'est un peu chiant et oblige a etre devant... 3) est il possible de le lancer en tache planifier via DSM (histoire de ne plus s'en occupé et qu'il se fasse 1 fois par mois) 4) pourquoi ne pas integrer les series avec? ya d'autre applis / script / package qui le font, certe, mais autant eviter 50 scripts / applis non? 5) j'ai dans le partage video un dossier film, un dessin animé, un serie, un moto et un famille. est ce qu'on peu cibler quel dossier sera traité? Merci
  24. c'est comme pour les raports de bug, tu clic sur centre d'assistance / contacter l'assistance dans DSM... mais j'attendrais un peu a ta place, DSM 5.1 arrive avec des modifs dans photo station... je serais a la conference Syno mardi prochain, j'en profiterais pour posser les question sans reponse...
  25. j'ai remarquer que lorsque des photos portait le meme nom dans differents albums, l'indexation ce faisait mal, voir pas du tout...
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.