Aller au contenu

Script : Renommer Les Films D'apr


bud77

Messages recommandés

Je viens de passer en DSM5. Et je confirme que ça fonctionne toujours sans avoir rien à faire, connecté en root ...

Je suis égaré alors. J'ai du recevoir au moins 5 mp me disant que çà marchait pas sous DSM5 ...

Peut être était-ce une erreur sur les anciennes versions de DSM5 :o

En tout cas, merci pour la confirmation :)

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

@sebmafate, j'ai testé le script, il se lance bien, mais rien ne semble se passer => fin d’exécution du script rename.log vide

voici le debug de l’exécution du script :

+ whoami
+ CHECK_USER=root
+ SUCMD=su - admin -c
+ start_rename
+ QUERY=select f.id, s.title, e.tag_line, to_char(e.season, 'FM00'), to_char(e.episode,'FM00'), e.year, f.path, f.container_type from tvshow s, tvshow_episode e, video_file f where s.id = e.tvshow_id and e.mapper_id = f.mapper_id order by s.title, e.season, e.episode;
+ tee+ rename.logread ENTRY

+ su - admin -c /usr/bin/psql -d video_metadata -q -A -t -c "$QUERY"

Aurais-tu une idée par hasard ?

Merci d'avance pour ton retour.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

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

Lien vers le commentaire
Partager sur d’autres sites

1) Il le "scanne" mais le modifie pas vu que le nom est déjà OK

2) Oui, c'est possible, il me semble l'avoir indiqué quelques pages avant (faut commenter quelques lignes en mettant un # devant)

3) Oui, c'est ce que je fais chez moi :)

4) Pour les séries, videostation est trop capricieux (je pense, entre autre, aux multi-épisodes qui sont pas gérés). Il vaut mieux utiliser sickbeard

5) Le script ne cible pas de dossier, mais toute la base videostation des films. Il doit être possible de "filtrer" sur un dossier précis, mais c'est beaucoup de travail pour un besoin très spécifique ...

Edit : Ah bah non, j'ai jamais indiqué comment lancer sans validation :D

Donc le voici :

#!/bin/ash
###########################################################################################
#............ Script pour renommer les films de Video Station.............................#
#.........................................................................................#
#............... Permet de renommer les fichiers sous le nom officiel du films............#
###########################################################################################


###########################################################################################
#                      Declaration de la fonction de renommage                            #
###########################################################################################
start_rename () {
###########################################################################################
#                   Recuperation des infos DB et mise en variable                         #
###########################################################################################
$SUCMD '/usr/syno/pgsql/bin/psql -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                                       #
				###########################################################################################
				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/syno/pgsql/bin/psql -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
	done
}
###########################################################################################
#                               Check du user = admin ou root                             #
###########################################################################################

CHECK_USER=$(whoami)
case $CHECK_USER in
	admin)
		SUCMD=eval
		start_rename |tee rename.log;;
	root)
		SUCMD="su - admin -c"
		start_rename |tee rename.log;;
	*)
	echo "Ce script doit etre lance avec les user root ou admin"
	exit
esac

(J'ai laissé les lignes commentés, au cas ou)

Modifié par bud77
Lien vers le commentaire
Partager sur d’autres sites

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é! ;-)

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

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

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

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

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

Le script doit être lancé en root ou admin, personne d'autre, sinon l'accès à la DB est refusé

Le check du user défini la commande primaire à lancer

Les erreurs "FATAL" et "su...." je dirais que tu as locké ton user "admin" ... ?

Et maintenant je me souviens pourquoi je n'ai pas mis de version sans validation : Pour éviter les pertes de video comme tu viens de le faire

Et forcer un premier lancement manuel afin de tester

Et il y a déjà une fonction qui test si la video existe déjà

if [ "$CHEMIN" == "$NEW_PATH" ]
			then
				echo $CHEMIN deja OK, pas de MaJ

Le problème c'est qu'il n'y a (quasiment) jamais d'erreur avec le script. Si il y en une, il s'arrête tout simplement

Il faut alors rechercher dans le log ce qui a mal été renommé

Lien vers le commentaire
Partager sur d’autres sites

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

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Le test que je fais vérifie si le fichier est déjà bien nommé.

Il n'est pas normal d'avoir 2 fichiers ayant exactement le même nom (d’où la suppression que tu as eu), surtout après qu'il y ai eu un renommage

Concernant ton erreur en root, tu est le _seul_ a encore l'avoir

Est-ce que tu te connecte en root directement en SSH ?

Car le dossier dont tu fait référence est le homedir du user admin, et root n'est pas censé passer par là

Lien vers le commentaire
Partager sur d’autres sites

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"
Lien vers le commentaire
Partager sur d’autres sites

#!/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.

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

Bonjour tout d'abord tout grand merci pour votre bon boulot, je suis un des rares à avoir encore un souci en DSM5 avec cette fameuse erreur de "psql fatal admin doesnt exist", j'ai lu qu'effectivement en modifiant quelque peu le script V10 avec -U postgres comme indiqué dans le post ci-dessus on peut contourner le problème

Je n'ai aucune compétence en informatique, pourrais-je demander à Nexius2 d'avoir la gentillesse de mettre son script en téléchargement? avec les éléments suivants :OUI>rajouter la date dans le log, la possibilité de demander la confirmation de renommage, la double verif au cas ou un fichier porterais deja le meme nom.

Un tout grand merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

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é

Lien vers le commentaire
Partager sur d’autres sites

/volume1/video/Videostation.renommer.films.sh: line 1: #!/bin/ash############################################################################################............: not found
Quand je copie, malheureusement, j'ai l'erreur suivante
J'ai par contre repris la v10 et juste changer la partie "fatal" et cela marche parfaitement
J'aurais toutefois aimé utiliser le v11.2 pour : - possibilité d'activer ou non la confirmation de renommage

- double vérifier au cas ou le fichier est déjà présent

J'ai en effet pas mal de fichiers à renommer et donc preferais ne pas avoir à taper O pour confirmer à chaque fois

merci pour votre boulot, impatient d'avoir la version 11.2

Lien vers le commentaire
Partager sur d’autres sites

Attention avec le script des nexius, y'a une coquille après la validation/refus du rennomage

Dans les 2 cas, çà va renommer...

Et je suis pas sur de la validité de l'ajout du IF pour la MAJ_CONF

PS : La mise en forme dans les balises code a échoué (tous les retours à la ligne ont sautés), suite à ton edit je pense

Personnellement, j'ai 2 versions du script, une auto qui demande rien, et une autre avec validation pour tester

Lien vers le commentaire
Partager sur d’autres sites

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

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

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?

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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.