Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 221 sur 298 PremièrePremière ... 121171211213214215216217218219220221222223224225226227228229231271 ... DernièreDernière
Affichage des résultats 6 601 à 6 630 sur 8922
  1. #6601
    Effectivement si je me trompe d'argument...
    Voici la 1er partie terminé.

    Code:
    #!/bin/bash
    #Script HandBrake by Askulmin
    #12/2017
    
    # Si il y a 0 fichier, le dossier est vide
    dossier=/home/clementt/handbrake/_forconvert
    test=`find /home/clementt/handbrake/_forconvert -type f | wc -l`
    
    echo "Lancement du Script Handbrake, by Askulmin"
    
    echo "Appuyer sur Entrée pour continuer..."
    read a
    
    echo "Liste des fichiers :"
    ls $dossier
    echo "TOTAL : $test"
    
    if [ -z "$(ls -A $dossier)" ]; then
       echo "Le repertoire est vide" ; 
       echo "Byebye BabyBlue" ;
    else
       echo "Le repertoire n'est pas vide" ; 
       echo "Lancement script Hanbrake" ;
    fi
    
    exit 1
    Resultat en CLI

    Code:
    clementt@NAS-Ubuntu:~$ ./handbrake_v2.sh
    Lancement du Script Handbrake, by Askulmin
    Appuyer sur Entrée pour continuer...
    
    Liste des fichiers :
    test.mkv
    TOTAL : 1
    Le repertoire n'est pas vide
    Lancement script Hanbrake
    clementt@NAS-Ubuntu:~$ ./handbrake_v2.sh
    Lancement du Script Handbrake, by Askulmin
    Appuyer sur Entrée pour continuer...
    
    Liste des fichiers :
    TOTAL : 0
    Le repertoire est vide
    Byebye BabyBlue


  2. #6602
    Donc la raison pour laquelle tu n'écris pas dans ton fichier de log, c'est simplement que tu as mis ton exit 101 juste avant, donc tu quittes le script.

    Tout bêtement

    - - - Mise à jour - - -

    Autre protip : tu n'as pas besoin des ";" à la fin de tes lignes, ils sont équivalents à un retour à la ligne. Tu n'en as besoin que si tu mets plusieurs commandes à la suite.

  3. #6603
    j'apprend sur le tas

    J'ai réussis a faire ma 1er partie d'automatisation de mon NAS.
    Prochaine étape suppression automatique après convertion sur handbrake.

    Ya possibilité dans un fichier script de faire appel a d'autre fichier.sh ? Sa permettrais de pas mettre le bazar dans les scripts existant et qui fonctionnent ?


  4. #6604
    Oui oui sans souci. Tu fais comme quand tu appelles ton handbrake

    Tu prends une variable dans laquelle tu mets le chemin du fichier et après tu exécute $variable.

  5. #6605
    Citation Envoyé par Askulmin Voir le message
    j'apprend sur le tas
    C'est bien!

    Citation Envoyé par Askulmin Voir le message
    Ya possibilité dans un fichier script de faire appel a d'autre fichier.sh ? Sa permettrais de pas mettre le bazar dans les scripts existant et qui fonctionnent ?
    Il vaut mieux utiliser des fonctions, si ton fichier de script deviens trop gros dans ce cas envisage de découper certaines fonctionnalités dans des sous fichiers, mais en l'état pas besoin.

    Sinon j'ai fait quelques modifs à ton script:
    Code:
    #!/bin/bash
    #Script HandBrake by Askulmin
    #12/2017
    
    # Usage:
    # monscript.sh [/chemin/du/dossier/de/sources] [/chemin/du/dossier/de/destination]
    
    # Variables du scripts
    DEF_SRC="/home/clementt/handbrake/_forconvert"
    DEF_DEST="/home/clementt/handbrake/_convert"
    LOG_PATH="/home/clementt/handbrake/log.txt"
    DEST_EXT="mkv"
    HANDBRAKE_CLI=HandBrakeCLI
    
    # soit on a passé des arguments au script et on les prend comme source et destination
    # soit on prend des valeurs "par défaut"
    if [ -z "$1" ]; then
    	SRC="${DEF_SRC}"
    else
    	SRC="$1"
    fi
    if [ -z "$2" ]; then
    	DEST="${DEF_DEST}"
    else
    	DEST="$2"
    fi
    
    echo "lancement du script \n$(date) \n$0 ${SRC} ${DEST}"
    
    # Test Présence de fichiers
    if [ -z "$(ls -A ${SRC})" ]; then
    	echo "Erreur dossier vide"
    	exit 1
    fi
    
    # for n'a pas besoin qu'on lui passe le retour d'une commande lorsque l'on veut opérer sur un chemin
    # optionnellement en repassant par une ligne de commande on pourrait utiliser find plutôt que ls, notamment pour ne prendre en compte les dossier
    # find ${SRC} -type f
    for FILE in ${SRC}/*; do
    	filename=$(basename $FILE)
    	extension=${filename##*.}	
    	filename=${filename%.*}
    
    	#on construit la ligne de commande que l'on va executer a des fin de debug (savoir ce que l'on convertis par exemple)
    	run_handbrake="${HANDBRAKE_CLI} -i ${FILE} -o ${DEST}/${filename}.${DEST_EXT} -e x265 -O"
    	echo "lancement de ${run_handbrake}"
    
    	#Lancement de la ligne de commande, le 2>&1 redirige les sorties d'erreur vers la sortie standard afin de tout avoir dans un fichier si l'on veut enregistrer la sortie du script
    	${run_handbrake} 2>&1
    	
    	# on test si le retour de la convertion precedente s'est bien déroulée (si c'est différent de 0 c'est qu'il y a une erreur)
    	if [ $? -ne 0 ]; then
    		echo "Erreur lors de la conversion"
    		# Optionnellement on peut quitter s'il y a une erreur en décommentant la ligne suivante
    		#exit 1
    	fi		
    done
    Pour avoir un fichier de log tu peux des redirections:
    /chemin/pour/lancer/mon/script.sh >> /mon/fichier/de.log
    Dernière modification par shlagevuk ; 12/12/2017 à 17h27.

  6. #6606
    Faut faire attention parce que si le nom de dossier a des espaces, ça peut mal finir tout ça

  7. #6607
    Citation Envoyé par shlagevuk Voir le message
    C'est bien!



    Il vaut mieux utiliser des fonctions, si ton fichier de script deviens trop gros dans ce cas envisage de découper certaines fonctionnalités dans des sous fichiers, mais en l'état pas besoin.

    Sinon j'ai fait quelques modifs à ton script:
    Code:
    #!/bin/bash
    #Script HandBrake by Askulmin
    #12/2017
    
    # Usage:
    # monscript.sh [/chemin/du/dossier/de/sources] [/chemin/du/dossier/de/destination]
    
    # Variables du scripts
    DEF_SRC="/home/clementt/handbrake/_forconvert"
    DEF_DEST="/home/clementt/handbrake/_convert"
    LOG_PATH="/home/clementt/handbrake/log.txt"
    DEST_EXT="mkv"
    HANDBRAKE_CLI=HandBrakeCLI
    
    # soit on a passé des arguments au script et on les prend comme source et destination
    # soit on prend des valeurs "par défaut"
    if [ -z "$1" ]; then
    	SRC="${DEV_SRC}"
    else
    	SRC="$1"
    fi
    if [ -z "$2" ]; then
    	DEST="${DEF_DEST}"
    else
    	DEST="$2"
    fi
    
    echo "lancement du script \n$(date) \n$0 ${SRC} ${DEST}"
    
    # Test Présence de fichiers
    if [ -z "$(ls -A ${SRC})" ]; then
    	echo "Erreur dossier vide"
    	exit 1
    fi
    
    # for n'a pas besoin qu'on lui passe le retour d'une commande lorsque l'on veut opérer sur un chemin
    # optionnellement en repassant par une ligne de commande on pourrait utiliser find plutôt que ls, notamment pour ne prendre en compte les dossier
    # find ${SRC} -type f
    for FILE in ${SRC}/*; do
    	filename=$(basename $FILE)
    	extension=${filename##*.}	
    	filename=${filename%.*}
    
    	#on construit la ligne de commande que l'on va executer a des fin de debug (savoir ce que l'on convertis par exemple)
    	run_handbrake="${HANDBRAKE_CLI} -i ${FILE} -o ${DEST}/${filename}.${DEST_EXT} -e x265 -O"
    	echo "lancement de ${run_handbrake}"
    
    	#Lancement de la ligne de commande, le 2>&1 redirige les sorties d'erreur vers la sortie standard afin de tout avoir dans un fichier si l'on veut enregistrer la sortie du script
    	${run_handbrake} 2>&1
    	
    	# on test si le retour de la convertion precedente s'est bien déroulée (si c'est différent de 0 c'est qu'il y a une erreur)
    	if [ $? -ne 0 ]; then
    		echo "Erreur lors de la conversion"
    		# Optionnellement on peut quitter s'il y a une erreur en décommentant la ligne suivante
    		#exit 1
    	fi		
    done
    Pour avoir un fichier de log tu peux des redirections:
    /chemin/pour/lancer/mon/script.sh >> /mon/fichier/de.log
    L'avantage de ton script ? C'est l'optimisation des commandes ?
    Merci je vais surement piochier des idées


  8. #6608
    Note que je l'ai pas testé, je suis au boulot, y'a surement quelques erreurs de syntaxe.

    Sinon c'est surtout réorganiser le code et ajouter des logs. Basiquement ça fait la même chose que le tiens. C'est surtout pour te montrer quelques exemples de bonne pratiques, indentation etc...

  9. #6609
    Code:
    exec &> >(tee -a "$log_file")
    J'ai trouvé ca pour les logs


  10. #6610
    tee marche aussi oui, ça dépend de ce que tu veux faire.

  11. #6611
    Citation Envoyé par Askulmin Voir le message
    Code:
    exec &> >(tee -a "$log_file")
    J'ai trouvé ca pour les logs
    C'est overkill pour ce que tu fais comme logging.

  12. #6612
    si ca fait le Taff je garde

    Ya moyen de faire une verificaction des éléments en sortie de Handbrake avec suppression ?
    L'idée, une fois l'encodage terminée je voudrais automatiser les contrôles de fichiers, et éventuellement faire une commande type : rm ?


  13. #6613

  14. #6614
    Attention a vouloir faire des truc ultra optimisé on arrive rapidement à ne plus lire ses scripts
    Essaye perl tu vas te marrer à ouvrir un fichier 2 ans après.

    Et qu'est ce que tu appelles un script automatique ?
    Tu veux qu'il se lance de temps en temps ? Ou lorsqu'un événement se produit ?

  15. #6615
    Definition selon mon besoin
    - Lancement du script "encodage" des qu'une modifications dans un dossier apparait (ici dés que je met des videos dans le dossier)
    - Suppression automatique du fichier encodé (je pense plutôt le déplacer dans un autre dossier au cas ou) (sauf si il y a moyen de test l'integrité d'une vidéo sur Ubuntu)


  16. #6616
    Citation Envoyé par mcgrill Voir le message
    Attention a vouloir faire des truc ultra optimisé on arrive rapidement à ne plus lire ses scripts
    Essaye perl tu vas te marrer à ouvrir un fichier 2 ans après.
    Exactement, l'idée c'est pas non plus de se perdre dans le fichier
    Sa permet aussi de bien comprendre les fonctions danss un premier temps.

    J'ai effectué quelques ajout depuis hier soir. Et j'ai repris des morceaux de ton script shlagevuk

    Code:
    #!/bin/bash
    #Script HandBrake by Askulmin
    #12/2017
    
    
    #VARIABLES
    	#Fonction COUNT : compte le nombre de fichier dans un dossier
    dossier=/home/clementt/handbrake/_forconvert
    DEST_FIN=/home/clementt/handbrake/_old
    COUNT=`find /home/clementt/handbrake/_forconvert -type f | wc -l`
    log_file=/home/clementt/handbrake/logout.log
    date=`date`
    
    #VARIABLES HANDBRAKE
    SRC=/home/clementt/handbrake/_forconvert
    DEST=/home/clementt/handbrake/_convert
    DEST_EXT=mkv
    HANDBRAKE_CLI=HandBrakeCLI
    
    #FICHIER LOG
    exec &> >(tee -a "$log_file")
    
    #SCRIPT
    echo -e "\t\t\033[1;4;31mLancement Script Handbrake\033[0m"
    echo -e "\t\t\033[1;4;31mAppuyer sur Entrée pour continuer...\033[0m"
    read a
    
    echo "Liste des fichiers :"
    ls $dossier
    echo "TOTAL : $COUNT"
    
    #VERIFICATION DOSSIER
    if [ -z "$(ls -A $dossier)" ]; then
       echo "Le repertoire est vide" ;
    else
       echo "Le repertoire n'est pas vide" ; 
       echo "Lancement script Handbrake" ;
       echo "Appuyer sur Entrée pour continuer..."
       read a
    fi
    
    #HANDBRAKE (cf VARIABLES)
    
    for FILE in ${SRC}/*; do
    	filename=$(basename $FILE)
    	extension=${filename##*.}	
    	filename=${filename%.*}
    
    #DEBUG Ligne de commande (savoir ce que l'on convertis)
    	run_handbrake="${HANDBRAKE_CLI} -i ${FILE} -o ${DEST}/${filename}.${DEST_EXT} -e x265 -O"
    	echo "lancement de ${run_handbrake}"
    
    #2>&1 Action pour LOG
    	${run_handbrake} 2>&1
    	
    #DEBUG : Test convertion / si c'est différent de 0 c'est qu'il y a une erreur)
    if [ $? -ne 0 ]; then
    	echo "Erreur lors de la conversion"
    else
    	mv $dossier $DEST_FIN
    	echo "Déplacement après convertion : OK"
    	
    	# Optionnellement on peut quitter s'il y a une erreur en décommentant la ligne suivante
    	#exit 1
    
    fi		
    done
    
    echo -e "\t\t\033[1;4;31mFIN DU SCRIPT $date\033[0m"
    echo "Byebye BabyBlue"
    
    exit 1
    A quoi sert cette commande ?
    Code:
    ${run_handbrake} 2>&1


  17. #6617
    En gros il remplace ${run_handbrake} par sa valeur, il lance donc handbrakecli avec les option définies plus haut, ensuite le '2>&1' redirige la sortie d'erreur vers la sortie standard, ainsi quand tu fais une redirection globale de la sortie du script dans un fichier, les sorties d'erreurs seront présentes dedans également.

  18. #6618
    Vous êtes sûr pour le " mv $dossier $DEST_FIN" ?

    Il me semble que si ça réussit pour le premier fichier, ça va envoyer tout le répertoire _forconvert vers le répertoire _old non ?

  19. #6619
    Effectivement, il faut mettre $FILE à la place

  20. #6620
    Oui la commande ne marchait pour le "move"
    J'ai bricoler un peu après plusieurs sessions de test et je suis parvenu a ce resultat.

    Code:
    #DEBUG : Test convertion / si c'est différent de 0 c'est qu'il y a une erreur)
    if [ $? -ne 0 ]; then
    	echo "Erreur lors de la conversion"
    fi
    done
    
    cd /home/clementt/handbrake/_forconvert
    mv * /home/clementt/handbrake/_old
    echo "Déplacement après convertion : OK"
    # Optionnellement on peut quitter s'il y a une erreur en décommentant la ligne suivante
    #exit 1


  21. #6621
    Hello,

    Si je mets en place un RAID quelconque dans un Synology (mettons un DS418j), si jamais je passe un jour à un autre Syno, est-ce que j'aurai juste à mettre les DD utilisés dans le nouveau NAS pour retrouver toutes mes données ? Ou je rêve ?

  22. #6622
    Normalement il est possible de "migrer" un synology vers un autre.

    Le guide officiel en Français.
    https://www.synology.com/fr-fr/knowl..._5_0_and_later

  23. #6623
    Je confirme, je suis passé d'un DS214 à un DS415 Play.
    Le premier était en SHR avec donc deux disque, je les ai mis dans l'autre, suivit d'une moulinette du nouveau NAS.
    Ensuite j'ai pu ajouter des disques.

  24. #6624
    Je confirme également, ayant migré les disques depuis mes DS210j & DS211 jusqu'au DS412+ actuel.

    Question connexe : suite à mes récents déboires de secteurs défectueux à plusieurs reprises sur un exemplaire neuf, j'ai réceptionné un IronWolf 3To recertifié via le SAV Seagate aujourd'hui.

    Si je remplace par ce 3To un des vaillants 2To de la grappe SHR à 3 disques actuelle ([2x2To]+[1x3To]), et donc bénéficie de l'extension en capacité du volume, qui passerait de 4 à 5To dixit le simulateur Synology, est-il possible de remettre le 2To en cas de nouveau crash d'un Seagate* ?

    :jamais203:

    * S'il y a moins de 4To de données dans le volume, évidemment.
    « Sans puissance, la maîtrise n'est rien »

  25. #6625
    Citation Envoyé par Askulmin Voir le message
    Oui la commande ne marchait pour le "move"
    J'ai bricoler un peu après plusieurs sessions de test et je suis parvenu a ce resultat.

    Code:
    #DEBUG : Test convertion / si c'est différent de 0 c'est qu'il y a une erreur)
    if [ $? -ne 0 ]; then
        echo "Erreur lors de la conversion"
    fi
    done
    
    cd /home/clementt/handbrake/_forconvert
    mv * /home/clementt/handbrake/_old
    echo "Déplacement après convertion : OK"
    # Optionnellement on peut quitter s'il y a une erreur en décommentant la ligne suivante
    #exit 1
    Tj so simple les NAS homemade


    "-ma copine m'a quitté, mon banquier a un cancer et mon chien s'est fait écrasé, je déprime
    -ok alors fait un NAS homemade, tu seras tellement emmerdé pour un rien que t'auras le temps de penser à rien, rien que programmer la ligne de commande pour l'extinction du NAS te prendras 3 jours avec compilation de noyaux Linux expérimentaux et tout. Et à la fin ça tiendra 24h et il te faudra tout recommencer à 0!
    -ptain pas con, merci gros!"

  26. #6626
    C'est pas parce qu'il y a trois lignes de bash que c'est le bout du monde... Merci les idées préconçues.

    En 2 ans d'activité de mon NAS homemade j'ai jamais eu a recompiler un noyau ou à le réinstaller. Et pourtant je bricole dessus et je suis loin d'avoir une config "normale" (debian + ZFS on linux)

    Vaut mieux rester des avec les belles interfaces toute faite qui te permettent pas forcément de faire ce que tu veux.

    Là il convertis automatiquement ses vidéo et c'est pas plus compliqué que ça. En plus il apprend à utiliser le scripting.

  27. #6627
    Citation Envoyé par shlagevuk Voir le message
    Vaut mieux rester des avec les belles interfaces toute faite qui te permettent pas forcément de faire ce que tu veux.
    Là il convertis automatiquement ses vidéo et c'est pas plus compliqué que ça. En plus il apprend à utiliser le scripting.
    Yeah

    D'ailleurs dans ce script j'ai un petit soucis, que je n'ai pas résolut avec des ""...
    Lorsque le fichier contient des espaces dans sa nomination, il y a erreur.

    Comment resoudre ce soucis ? Dois-je renommer l'ensemble de ma vidéothèque ...


  28. #6628
    Citation Envoyé par Wobak Voir le message
    Faut faire attention parce que si le nom de dossier a des espaces, ça peut mal finir tout ça

  29. #6629
    Citation Envoyé par shlagevuk Voir le message
    Vaut mieux rester des avec les belles interfaces toute faite qui te permettent pas forcément de faire ce que tu veux.
    Sur les Syno, on peut avoir la belle interface toute faite, les packages qui couvrent 90% des besoins du commun des mortels ET scripter pour les 10% restants.



    Citation Envoyé par Askulmin Voir le message
    D'ailleurs dans ce script j'ai un petit soucis, que je n'ai pas résolut avec des ""...
    Je pense que c'est le manque de constance dans la convertion. Ou conversion. C'est hélas terriblement formaliste, le scripting.
    « Sans puissance, la maîtrise n'est rien »

  30. #6630
    Un login/password admin inscrit en dur dans les disques externes Western Digital myCloud
    https://www.techspot.com/amp/news/72...mpression=true

    En avril 2016 WD s’etait fait hihjack ses DNS pour la même gamme de produit.
    http://www.securityweek.com/western-...osed-dns-issue

Page 221 sur 298 PremièrePremière ... 121171211213214215216217218219220221222223224225226227228229231271 ... DernièreDernière

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •