#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
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 :
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
#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 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
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.
#6 Re : -1 » [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 20/02/2011, à 15:33
- artik1024
- Réponses : 2 096
@levi : #1278
#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 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
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 !!
#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
#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
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
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
#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
(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
#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 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
#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 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
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 ?