Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

nombre réponses : 25

#0 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 06/01/2011, à 15:04

artik1024
Réponses : 2 096

Nikelll !! merci beaucoup AnsuzPeorth, ca me donne donc un copié en presse papier. Ca me copie :

http://i.imgur.com/ab0J1.png
http://i.imgur.com/ab0J1l.jpg
http://i.imgur.com/ab0J1s.jpg
http://imgur.com/ab0J1
http://imgur.com/delete/92g4dR9uVXU2MzP

J'ai essayé xclip, comme suggere Ghilan ca donne :

curl -F "image"=@"$file" -F "key"="5d317f0bee23b282473522e1aa68f621" http://imgur.com/api/upload.xml | grep -Eo '<[a-z_]+>http[^<]+'|sed 's/^<.\|_./\U&/g;s/_/ /;s/<\(.*\)>/\1:\ /' | cut -d ' ' -f3 | xclip -i;

Ca marche aussi bien, mais l'avantage est que xclip est inclus dans les paquets, pas besoin de l'installer donc wink

Est-il possible de n'avoir que la première ligne ? (http://i.imgur.com/ab0J1.png) et est-il possible de faire afficher une petite fenêtre "notify" une fois le copié effectué ? Merci beaucoup en tout cas, j'arrive presque au script dont je rêvais !

#1 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 07/01/2011, à 19:06

artik1024
Réponses : 2 096

AnsuzPeorth, marvelous !! tu m'as filé un super coup de main, la commande regex est impec. J'ai mon copié collé, me manque plus que cette petite notification ... la commande zenity ne fonctionne pas. J'ai donc fais un :

sudo apt-get install libnotify-bin

Et voilà mon script fonctionnel à 100% :

#!/bin/bash
screenshot='screenshot';
file="$HOME/bureau/$shoot.png";

scrot -s -b -q 0 $file;

curl -F "image"=@"$file" -F "key"="5d317f0bee23b282473522e1aa68f621" http://imgur.com/api/upload.xml | grep -Eo '<[a-z_]+>http[^<]+'|sed 's/^<.\|_./\U&/g;s/_/ /;s/<\(.*\)>/\1:\ /' | cut -d ' ' -f3 | head -n1 | xsel -b;

notify-send "Image Uploadée";

exit 0

(finalement Xclip ne fonctionne pas)

#2 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 09/01/2011, à 01:29

artik1024
Réponses : 2 096

Ah ! alors je suis confronté à un petit soucis. Losrque que j'execute mon script avec un launcher, il faut que je sélectionne

"Application dans un terminal"

Si je choisi "Application" le copié ne fonctionne pas. il y a une solution pour résoudre ce petit soucis ?

#3 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 18/02/2011, à 21:03

artik1024
Réponses : 2 096

Script cadagre de zone d'écran manuel, puis auto upload sur imgur et copie du lien à coller pour afficher votre screenshot

Re bonsoir ! bon, j'ai réussi à m'en tirer seul (merci manpage) lol, du coup mon script est parfait et ne bug plus, il pourra en interesser plus d'un car il permet de selectionner une partie d'ecran en cadrant n'importe quelle zone, de l'uploader sur imgur, puis de copier un lien direct vers l'image en ligne. reste plus qu'à "Ctrl + V" ou "clic molette" dans un navigateur ou msn (sans aucun term qui s'affiche au lancement du script, donc xsel fonctionne) pour se rendre à l'adresse de l'image hébergée. un exemple :

test

Pour faire ça, j'ai simplement lancé mon script, cadré la zone voulue et relaché mon bouton. Une fois la notification "image uploadée" affichée, je peux copier / coller le lien n'importe ou pour afficher l'image. Tres pratique par exemple pour montrer à ses postes ou clients ce qu'on est en train de faire à l'écran, pour leur montrer une maquette, ou tout un tas de choses.

Voilà le code du script, il faut avoir installé scrot, curl, libnotify-bin, xsel, xclip :

sudo apt-get install scrot curl libnotify-bin xsel xclip

Ensuite, voilà le script :

#!/bin/bash

scrot -s -q 100 -d 1 bureau/screenshot.jpg;
url=$(curl -F "image"=@"bureau/screenshot.jpg" -F "key"="5d317f0bee23b282473522e1aa68f621" http://imgur.com/api/upload.xml | grep -Eo '<[a-z_]+>http[^<]+' | sed 's/^<.\|_./\U&/g;s/_/ /;s/<\(.*\)>/\1:\ /' | cut -d ' ' -f3 | head -n1);
echo -n "$url" | xsel -b -i;
echo -n "$url" | xclip -i;
rm bureau/screenshot.jpg;
notify-send "Image Uploadée";
exit 0

N'oubliez pas de changer le chemin d'accès (mon bureau en loccurence) mais adaptez en fonction de votre conf. Merci ) nordinateur et levi pour leur recherche avec moi de mes précédents bugs wink

#4 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 19/02/2011, à 16:26

artik1024
Réponses : 2 096

Levi : oui bien sur, suffit de changer le dossier par /tmp wink Moi je garde le bureau car parfois je commente le "rm" pour garder l'image, et c'est plus court pour agir sur le fichier sur le bureau (notamment quand je l'ouvre avec photoshop wine).

Pour récuperer le img miniature ca doit etre possible car l'API d'imgur te permet de recup tout un tat de liens. Jette un oeil à mes topics page 52, l'auteur originel du script t'affiche plusieurs lignes, dont ceux des thumbs il me semble. Faut triturer le regex quoi wink

En parlant de ca, parsonne pour me faire sauter le saut de ligne please ?

#5 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 20/02/2011, à 03:40

artik1024
Réponses : 2 096

@rmy : si le site propose une API utilisable pour uploader, oui. (en loccurence c'est http://imgur.com/api/upload.xml). Mais imgur est extra pour les images, contrairement à imageshack, reconnu pour sa lenteur d'affichage des images, et souvent deletées sans l'accord de l'uploadeur.

#7 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 21/02/2011, à 01:30

artik1024
Réponses : 2 096

Cool Levi ! Bon visiblement mon soucis de saut de ligne ne peut pas être résolu ?

#8 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 21/02/2011, à 14:10

artik1024
Réponses : 2 096

@levi et nordinateur : je suis vraiment raccommodeur avec les scripts, je ne fais que piocher à droite ou a gauche les fonctions, mais je ne sais pas les écrire wink donc vos 2 solutions, même après bien fouiné et fais tout un tas de tests, j'ai pas réussi à les mettre correctement dans mon script pour retirer ce saut de ligne tongue

Vous pouvez me donner la ligne complète please ?

#9 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 21/02/2011, à 21:57

artik1024
Réponses : 2 096

@nordinatueur : marvellous !! C'est top de montrer le chemin sans pour autant delivrer la solution complete. J'ai donc réussi, je mets à jour mon script !

J'ai apporté un changement mineur, j'ai du coup (en récupérant la variable) avec xclip ajouté le clic milieu. Du coup il y a les 2, le Ctrl + V ou le clic molette pour "paste". Merci à vous tous, un script qui me sert 15 fois / jour !! smile

#10 Re : -1 »  Mutate, alternative à SpotLight » Le 06/02/2015, à 19:42

artik1024
Réponses : 2

J'ai exactement le me soucis Adrien. Le message est le suivant :

One Application May be running!Please try again~

Je sais pas si j'ai bien compris le fonctionnement du soft.

#11 -1 »  Executer une extraction automatique après un téléchargement » Le 26/10/2013, à 14:28

artik1024
Réponses : 4

Bonjour à tous ! J'ai un script qui mit bout à bout fonctionne impeccablement. Pour comprendre mon besoin d'aide, je décompose dans ce dernier ces actions :

1. Mon script se logue en ssh sur mon NAS (sur mon réseau local)
2. Il récupère depuis un serveur distant un dossier en utilisant "rsync" sur mon NAS
3. Soit je n'ai pas de coupure internet auquel cas il m'affiche un message de complétion, soit le net à coupé et il relance automatiquement rsync.

Sauf qu'après tout ça, je souhaiterais qu'il extract avec unrar automatiquement ce qu'il trouve dans le dossier qu'il vient de télécharger. J'ai ma commande de base pour l'extraction :

find -iname "*rar" -exec unrar e {} \;

J'ai essayé tout un tas de choses, mais je ne parviens pas au résultat que je souhaite, à savoir :

1. que ce soit le NAS qui extraie le contenu de mon dossier récupéré, et non ma machine locale sur laquelle je lance le script.
2. Que ce contenu soit extrait dans le dossier lui même et non à la racine de mon NAS
3. Que ça fonctionne si rsync doit synchroniser 3 dossiers différents. Mon script s'appelle "recup", et sur mon serveur distant j'ai 3 dossiers : A B et C. je vais donc lancer :

recup A B C

Comment faire pour que le contenu de A B et C soit extrait ?

Voilà mon script :

#!/bin/bash
while [ 1 ]
do
	argument="rsync -avhSs --partial --timeout=120 --progress --append-verify "
	for var in "$@"
	do
		argument=$argument"moi@94.25.26.36:'/home/moi/"$var"' "
	done
	argument=$argument"/volume1/nas/folders/; exit;"
	ssh root@192.168.0.2 -t $argument
	if [ "$?" = "0" ] ; then
		echo -e "
			\e[1;32mrsync completed normally\e[0m
			"
		exit
	else
		echo -e "
			\e[1;31mRsync failure. Backing off and retrying...\e[0m
			"
		sleep 20
	fi
done

Merci beaucoup à ceux qui se pencheront sur mon problème.

#12 Re : -1 »  Executer une extraction automatique après un téléchargement » Le 27/10/2013, à 01:52

artik1024
Réponses : 4

Le NAS importe peu. Je lance mon script depuis une machine connectée en réseau à mon NAS, mais je souhaite que LUI fasse le boulot. C'est pas vraiment un problème, mais plutôt de l'optimisation. J'ai réussi en rajoutant la commande find à faire ça :

#!/bin/bash
while [ 1 ]
do
	argument="rsync -avhSs --partial --timeout=120 --progress --append-verify "
	for var in "$@"
	do
		argument=$argument"moi@94.25.26.36:'/home/moi/"$var"' "
	done
	argument=$argument"/volume1/nas/folders/; exit;"
	ssh root@192.168.0.2 -t $argument
	if [ "$?" = "0" ] ; then
		echo -e "
			\e[1;32mrsync completed normally\e[0m
			"
			find /home/moi/$@/ -iname "*rar" -exec unrar e {} /home/moi/$@ \;
		exit
	else
		echo -e "
			\e[1;31mRsync failure. Backing off and retrying...\e[0m
			"
		sleep 20
	fi
done

La dans ce cas c'est la machine sur laquelle je lance le script qui extrait (et encore je manque d'argument pour le moment). Je voudrais que ce soit le NAS qui extrait du coup wink

#13 -1 »  [ Résolu ] Merger plusieurs cd1, cd2 ... en .avi dans un même dossier » Le 07/08/2013, à 11:51

artik1024
Réponses : 11

Bonjours à tous,

J'ai depuis peu l'envie de merger mes rips que j'effectuais à l'époque en 2 CD voir plus (jusqu'à 6 maximum) au format .avi.

Me retrouvant avec un dossier, je souhaite pouvoir en une ligne de commande pouvoir les regrouper. J'ai la ligne de commande qui me permet de faire un film :

avimerge -o ski.avi -i ski-cd1.avi ski-cd2.avi

Mais comment pouvoir lui demander de le faire sur tout un dossier ? J'ai par exemple cette arborescence :

ski-cd1.avi
ski-cd2.avi
vacances-cd1.avi
vacances-cd2.avi
vacances-cd3.avi

Comment avoir en une ligne de commande :

ski.avi
vacances.avi

Merci pour ce petit coup de main

#14 Re : -1 »  [ Résolu ] Merger plusieurs cd1, cd2 ... en .avi dans un même dossier » Le 07/08/2013, à 15:56

artik1024
Réponses : 11
Shanx a écrit :

La solution que tu proposes suppose que dans chemin/, il n’y a que les fichiers correspondant à ski, ce qui n’est pas forcément le cas.

Effectivement, tous les .avi sont dans le même répertoire. Ca semble plus compliqué que ce que je pensais...

#15 Re : -1 »  [ Résolu ] Merger plusieurs cd1, cd2 ... en .avi dans un même dossier » Le 09/08/2013, à 03:43

artik1024
Réponses : 11

pingouinux et nesthib, vraiment merci pour vos réponses. La solution de nesthib est parfaitement fonctionnelle smile

Cependant un dernier détail auquel je n'avait pas pensé vient de me prendre 2 heures sans résultat. Je voudrais qu'après chaque merge, les fichiers sources soient effacés afin de ne pas saturer mon disque de doublons lors des merges. J'ai donc essayé pas mal de trucs comme remplacer la dernière ligne par

ma_commande "${FICHIERS[@]}" && rm "${FICHIERS[@]}"

Ou bien rajouter

rm "${FICHIERS[@]}

à la fin du script. Le soucis est que cette dernière fonctionne mais n'efface que les derniers fichiers du dossier complet. Avec tout ce que j'ai testé et mon peu de connaissance, je pense que la réponse va me paraître évidente, mais quoiqu'il en soit, là je sèche !

Aussi nesthib il y a une chose que je ne comprend pas et qui pourrait m'aider à mieux comprendre le bash. Ton script "boucle" (j'entend par là qu'après chaque merge, il passe au suivante jusqu'à la fin du dossier). Si je met "rm "${FICHIERS[@]}" à la fin du script, il n'est pas prit dans cette boucle, et ne s'execute qu'à la fin du dossier, et non à la fin de l'action de merger, avant de passer à la suivante. Tu pourrais me dire pourquoi ?

Bonne nuit wink

#16 Re : -1 »  [ Résolu ] Merger plusieurs cd1, cd2 ... en .avi dans un même dossier » Le 09/08/2013, à 10:31

artik1024
Réponses : 11

Un grand merci à vous 2, le script est parfaitement fonctionnel. Je lance donc ma commande dans le dossier complet smile
(Merci nesthib pour l'explication de la boucle, là c'est clair !

nesthib : Tu me confirmes bien qu'en dernière ligne :

ma_commande "${FICHIERS[@]}" && rm "${FICHIERS[@]}"

N'est pas risqué ? (dans le doute je ne l'ai pas mis, mais c'est pour savoir)

#17 Re : -1 »  [Résolu]Commande de suppression récursive » Le 07/08/2013, à 16:10

artik1024
Réponses : 9

Merci à vous ! bien pratique et pile poil ce que je cherchais wink

#18 -1 »  [résolu] script avec valeur changeante demandée à l’exécution » Le 29/05/2013, à 01:14

artik1024
Réponses : 7

Bonsoir ! J'ai une configuration assez simple, car depuis mon terminal je voudrais me placer toujours dans le même répertoire puis lancer une commande scp. Sauf qu'un dossier distant change souvent de nom. Je voudrais donc que mon script me demande à chaque lancement quel est le nouveau nom du dossier distant, afin de récupérer son contenu.

J'ai donc mon début de script qui me place dans mon dossier en local, puis qui lance la commande scp. Comment fait pour que mon script me demande la valeur, pour qu'il le chope ? :

#!/bin/bash
cd /share/MD0_DATA/qnap/grab/;
scp -r moi@62.154.20.12:/home/moi/tograb/DOSSIER/ .;
exit 0

Voilà, c'est cette valeur DOSSIER que je souhaite que mon script me demande à chaque lancement. Un peu d'aide serait bienvenue ^^

#19 Re : -1 »  [résolu] script avec valeur changeante demandée à l’exécution » Le 29/05/2013, à 12:21

artik1024
Réponses : 7

Tiens des hiboux comme moi wink Alors merci Xav pour ta réponse, mais j'ai pas compris comment l'insérer dans mon script (la valeur dossier est en dure ?)

nesthib ta méthode commence vraiment à être celle que je recherche. Je suis en revanche confronté à un soucis ... les dossiers qui ont des espaces ! Pour prendre un exemple concret, le premier jour le dossier va s'appeler :

marmotte

et le second :

marmotte en sucre

le script (que j'ai appelé dl) fonctionne très bien en faisant :

#!/bin/bash
cd /share/MD0_DATA/qnap/grab/;
scp -r moi@62.154.20.12:/home/moi/tograb/$1/ .;
exit 0

Du coup comme tu dis, ma première commande

dl marmotte

Fonctionne NIKELLE ! (Sauf qu'en scp la complétion n'est visiblement pas possible, TRES dommage !).
Mais pas ma seconde :

dl marmotte en sucre

Forcément puisque pour le scp "marmotte" "en" "sucre" sont 3 dossiers. Il ya un possibilité (hormis renommage des dossiers distants), que le script gère ce problème d'espaces ?

Ma ligne de commande  :

scp -r moi@62.154.20.12:/home/moi/tograb/"'marmotte en sucre'"/ .

fonctionne aussi. mais dès qu'elle est dans un script, ça ne marche plus, exemple :

#!/bin/bash
cd /share/MD0_DATA/qnap/grab/;
scp -r moi@62.154.20.12:/home/moi/tograb/"'$1'"/ .;
exit 0

puis

dl marmotte en sucre

nan, fonctionne pas hmm

#20 Re : -1 »  [résolu] script avec valeur changeante demandée à l’exécution » Le 29/05/2013, à 15:06

artik1024
Réponses : 7

Merci à vous 2 !! Bon, mon associé m'a filé un coup de main après son réveil, et il m'a donc donné la solution, que de toutes façons je n'aurais pas trouvé seul ! Il fallait utiliser rsync (qui en plus permet le resume, etc etc).

Voilà le script fonctionnel :

#!/bin/bash

argument="rsync -avhSs --partial --progress --append-verify "
for var in "$@"
do
	argument=$argument"moi@62.154.20.12:'/home/moi/tograb/"$var"' "
done
argument=$argument"/share/MD0_DATA/qnap/grab/; exit;"

ssh admin@192.168.0.2 -t $argument
exit 0

Maintenant, je tape :

dl marmotte 'marmotte en sucre'

Ca me chope les 2 dossiers, en reprenant là il en était. Autre truc top, ce script peu même être lancé depuis une autre machine, puisque la ligne ssh admin@192.168.0.2 -t $argument permet de le placer à distance.

Un grand merci à vous 2 ! Ca a permis à mon associé de le convaincre qu'utiliser unison ou autre pour syncro n'était pas la méthode la plus fiable et la plus rapide !

#21 Re : -1 »  [résolu] script avec valeur changeante demandée à l’exécution » Le 22/06/2013, à 12:26

artik1024
Réponses : 7

Petites améliorations. Je me suis rendu compte que si ma connexion plantait, soit le téléchargement s'arrêtait, soit ça exitait. J'ai donc corrigé le soucis avec 2 nouveau cas de figure.

- Pour la connexion qui plante, j'ai ajouté un timout à ma commande rsync.
- Pour l'exit, j'ai bouclé tout ça avec 2 echos qui précisent si ça a planté, ou si le téléchargement s'est bien terminé (tout ça coloré en rouge ou vert)

Désormais, si la connexion plante, après 120 secondes le script reprend là ou il en était, jusqu'à ce que ça se termine wink pLus besoin de monitorer.

#!/bin/bash
while [ 1 ]
do
	argument="rsync -avhSs --partial --timeout=120 --progress --append-verify "
	for var in "$@"
	do
		argument=$argument"nickaardo@94.23.22.204:'/home/nickaardo/rtorrent/"$var"' "
	done
	argument=$argument"/share/MD0_DATA/qnap/torrents/; exit;"
	ssh admin@192.168.0.2 -t $argument
	if [ "$?" = "0" ] ; then
		echo -e "
			\e[1;32mrsync completed normally\e[0m
			"
		exit
	else
		echo -e "
			\e[1;31mRsync failure. Backing off and retrying...\e[0m
			"
		sleep 20
	fi
done

#22 Re : -1 »  convertir .7z en .zip » Le 15/02/2013, à 12:47

artik1024
Réponses : 6

Très simple, voilà la ligne de commande :

for i in *7z ; do tmpdir=$( basename ${i} .7z ) ; mkdir ${tmpdir} && pushd ${tmpdir} ; if 7z x ../${i} ; then if zip -r ../${tmpdir}.zip * .[^.]* ; then popd ; rm ${i} ; else popd ; echo Packing ${tmpdir}.zip failed! ; fi ; else echo Unpacking ${i} failed! ; fi ; rm -rf ${tmpdir} ; done

Tu copies/colles ca dans un terminal en étant dans le dossier dans lequel se trouve tes 7z. Soluce trouvée ici :http://www.linuxquestions.org/questions/linux-newbie-8/convert-a-batch-of-7z-files-to-zip-729198/

#23 Re : -1 »  ATI Radeon HD 4350 marche pas sur 11.04 Natty » Le 16/12/2011, à 18:55

artik1024
Réponses : 21
zombino a écrit :

chibbata, j'ai tout exécuté comme tu me l'as proposé, j'ai redemmaré -->  toujours le blocage sur la roue.
A noter que la dernière commande n'a pas fonctionné :

zest@zest-00000000000000000000000:~$ sudo aticonfig --intial
sudo: aticonfig: command not found

J'ai vu qu'on me proposait des mises à jour, notamment le passage au noyau Linux 3.00-11-generic, je l'ai fait, j'ai redémarré --> idem.

J'ai vu que le pilote "ATI Fire FL" remplaçait FGLRX dans les pilotes supplémentaires, je l'ai activé --> idem

Je reprendrai ça demain. Encore merci en tout cas.

sudo aticonfig --initial

Il y avait une faute de frappe

#24 Re : -1 »  [Résolu] Antrenamer sous linux - existe t'il un équivalent » Le 25/08/2011, à 00:36

artik1024
Réponses : 8

Salut Farliec !

Merci pour ton support concernant pyRenamer, par contre petite question : est-il possible de sauvegarder une liste d'actions ? de manière à la "charger" à chaque fois, un peu comme la fonction "charger une liste de jobs" propose antrenamer ? (Si c'est ça la fonction  (Menu Fichier > Load names from file...)) comment l'utiliser ?