#1376 Le 10/04/2011, à 08:42
- sdblepas
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Petit Up
Salut à tous
J'ai une demande de script, je ne veux pas tout le script mais juste une direction pour pouvoir le commencer.
Je voudrais faire un script qui scan un dossier (avec sous dossier) ou j'ai des videos (AVI|MPEG4|MKV) de la Music (MP3|FLAC|MIDI) des ebook (PDF|EPUB|MOBI) et qui lise les métadata de ces fichiers pour en créer un xml.
Dans le xml il y aurait à chaque fois toutes mes vidéos ou toutes mes Musique …
Pour résumer :
1 Fichier Vidéo
1 Fichier Musique
1 Fichier Ebook
Pour le xml en plus de la metadata lu il faudrait le full path pour l'acces.
Merci
Hors ligne
#1377 Le 10/04/2011, à 08:52
- ljere
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@sdblepas
tu peux prendre ça comme point de départ déjà dossier magique
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1378 Le 10/04/2011, à 10:12
- sdblepas
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@ljere
Merci pour la reponse, mais ce qu'il me faudrait c'est comment extraire les metadata. Mes dossiers sont deja range correctement
Merci
Hors ligne
#1379 Le 10/04/2011, à 10:58
- rmy
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
regarde peut-être du côté de hachoir-metadata
récupération de données: vrac–topic unique–mon site pro pour les particuliers : www.diskcard.fr– Je recycle volontiers tous vos disques durs HS (ou pas).
Le site pro pour les pros, spécialiste recupération de données RAID, NAS et serveurs: www.vodata.fr
Hors ligne
#1380 Le 10/04/2011, à 13:11
- sdblepas
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
merci rmy
ca m'a l'air pas mal
Hors ligne
#1381 Le 13/04/2011, à 09:02
- Nik0s
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour à toutes et à tous,
J'adapte en ce moment un script (qui existe déjà mais qui a besoin d'être mis à jour) qui nous permettra de :
Télécharger la dernière source de PHP 5
Compiler cette version.
Télécharger les sources en cours de Nginx
Compiler Nginx
Télécharger FastCGI et le compiler
Configurer FastCGI, Php 5, Nginx
Installer Mysql
Cette première version permettra de compiler toutes les sources (avec les options par défaut). Les prochaines versions, je l'espère, permettront de configurer plus finement les options.
Dernière modification par Nik0s (Le 13/04/2011, à 09:04)
Hors ligne
#1382 Le 25/04/2011, à 18:52
- Nik0s
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je viens de finaliser un script permettant de générer un fichier slideshow pour les wallpapers d'Ubuntu. Je ne sais pas si cela existe, donc voici ma version :
#!/bin/bash
# Objectif : générer automatiquement un slideshow pour ubuntu
echo -e "SlideShow XML Autobuilder par \033[1mNikos\033[0m"
# Search for parameters
if [ $# -ne 4 ] # si le nombre de paramètres n'est pas 2
then # affiche l'usage
echo -e "\033[1mCe script nécessite deux paramétres : \033[0m"
echo -e "\t- Un dossier où sont stockées vos images \E[32;1m ~/Images/ \E[32;0m"
echo -e "\t- L'extension de vos images \E[32;1m png \E[32;0m"
echo -e "\t- Le temps d'affichage en secondes entre deux images \E[32;1m 300 \E[32;0m"
echo -e "\t- Durée de la transition \E[32;1m 2 \E[32;0m"
echo -e "\033[4mExemple\033[0m $0 ~/Images/ png"
exit 1
fi
# Parameters OK
# Check if slash is present for the folder path
case $1 in
*/)
# Slash is present nothing to do, keep continue
;;
*)
echo $1 ne comporte pas de slash à la fin. Veuillez corriger le chemin.
exit 1
;;
esac
IMAGES=($(ls -d -1 $1*.$2))
ELEMENTS=${#IMAGES[@]}
if [ ${#IMAGES[@]} -eq 0 ]
then # We have a problem here !! no image found there is an issue
echo Une erreur s''est produite durant l''éxecution du script
if [ ! -d $1 ]
then
echo $1 est introuvable existe ou ne peut être un fichier. 1>&2
exit 1
fi
echo Le script n''a pas trouvé de fichiers $2 dans le dossier $1 1>&2
exit 1
fi
echo ${#IMAGES[@]} trouvés, en cours de création du fichier slideshow 1>&2
echo Ce fichier sera placé dans le dossier $1. Attention ce script doit avoir la permission de créer un fichier dedans 1>&2
echo Le fichier background.xml va être généré.
if [ ! -d "${1}" ] ; then
echo "$1 n'est pas un dossier ou n'existe pas" >&2
exit 1
fi
if [ $3 -lt 0 ]
then
echo -e "La valeur \E[32;1m${3}\E[32;0m ne peut être utilisée comme durée avant une transition"
exit 1
fi
if [ $4 -lt 0 ]
then
echo -e "La valeur \E[32;1m${4}\E[32;0m ne peut être utilisée comme durée de transition"
exit 1
fi
touch "${1}background.xml" /dev/null 2>&1
if [ $? -gt 0 ]
then
echo -e "Le fichier $1background.xml n' a pas pu être créé, code erreur : \E[32;1m $? \E[32;0m"
exit 1
fi
# Start writing to the background.xml file, need to be optimized
echo "<background>
<starttime>
<year>$(date +%Y)</year>
<month>$(date +%m)</month>
<day>$(date +%e)</day>
<hour>$(date +%H)</hour>
<minute>$(date +%M)</minute>
<second>$(date +%S)</second>
</starttime>" >> "${1}background.xml"
# Time to do math
let ELEMENTS=${#IMAGES[@]}-1
# Loop part have fun !!!!!
for (( i = 0 ; i < ${#IMAGES[@]} ; i++ ))
do
#echo ${IMAGES[${i}]} >> "$1background.xml"
echo " <static>
<duration>${3}</duration>
<file>${IMAGES[$i]}</file>
</static>
<transition>
<duration>${4}</duration>
<from>${IMAGES[${i}]}</from>" >> "${1}background.xml"
if [ $i -eq $ELEMENTS ]
then
echo " <to>${IMAGES[0]}</to>" >> "$1background.xml"
else
echo " <to>${IMAGES[$i+1]}</to>" >> "$1background.xml"
fi
echo " </transition>" >> "$1background.xml"
done
echo "</background>" >> "$1background.xml"
echo "Génération du fichier terminé, fin du script."
Dernière modification par Nik0s (Le 25/04/2011, à 21:21)
Hors ligne
#1383 Le 25/04/2011, à 19:03
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Il n'est pas nécessaire de vérifier la présence du "/" à la fin du dossier, il suffit de toujours en ajouter un (dossier//fichier est identique à dossier/fichier). Il est plus utile de tester qu'il s'agit bien d'un dossier existant avec :
if [ ! -d "$1" ] ; then echo "$1 n'est pas un dossier ou n'existe pas" >&2 exit 1 fi
Sauf cas exceptionnel, il est préférable de toujours entourer les variables et les arguments de guillemets doubles pour éviter les problèmes avec les espaces.
À priori, « $1background.xml » va poser problème, car bash va chercher la variable nommé « 1background.xml ». Il faut l'écrire "${1}background.xml" (c.f. 2 pour les guillemets).
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1384 Le 25/04/2011, à 20:11
- Levi59
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Le echo peut être simplifié il me semble :
echo "<background>" >> "$1background.xml"
echo " <starttime>" >> "$1background.xml"
echo " <year>$(date +%Y)</year>" >> "$1background.xml"
echo " <month>$(date +%m)</month>" >> "$1background.xml"
echo " <day>$(date +%e)</day>" >> "$1background.xml"
echo " <hour>$(date +%H)</hour>" >> "$1background.xml"
echo " <minute>$(date +%M)</minute>" >> "$1background.xml"
echo " <second>$(date +%S)</second>" >> "$1background.xml"
echo " </starttime>" >> "$1background.xml"
Peut être remplacé par :
echo "<background>
<starttime>
<year>$(date +%Y)</year>
<month>$(date +%m)</month>
<day>$(date +%e)</day>
<hour>$(date +%H)</hour>
<minute>$(date +%M)</minute>
<second>$(date +%S)</second>
</starttime>" >> "${1}background.xml"
Et pour la durée (duration) fixe, peut être qu'il serait intéressant de la modifier en fonction du nombre d'images ou en questionnant l'utilisateur... Ce n'est qu'une idée bien sûr! ^^
Hors ligne
#1385 Le 25/04/2011, à 20:26
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Généralement je fais ce genre d'echo de cette manière :
echo "\
ligne 1
ligne 2
…
dernière ligne"
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1386 Le 25/04/2011, à 20:46
- Nik0s
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Très bonne idée pour la duration, concernant l'echo, je vais modifier le tout. Merci de vos conseils.
edit : Je viens de mettre à jour la partie echo.
edit 1 : Je viens d'ajouter la partie duration et transition
J'espère que cela servira !!
Nikos
Dernière modification par Nik0s (Le 25/04/2011, à 21:21)
Hors ligne
#1387 Le 09/05/2011, à 01:15
- Pepou06
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
brt a écrit :SCRIPT : "Sauver des arbres"
Qui n'a jamais essayé d'imprimer en deux pages par feuilles, recto-verso, (sur une imprimante recto) sans se planter ?
J'ai rédigé un petit script python qui donne des instructions pour que tout fonctionne bien :
...
- J'aimerais faire évoluer ce script, pour qu'il communique directement avec cups, m'enfin j'en suis encore loin.Bonjour,
voici mon premier script "Sauvons des arbres", qui communique directement avec cups.
Ce script utilise zenity pour un peu plus d'interaction.
Il permet d'imprimer un pdf en deux pages par feuilles, recto-verso (simple ou en livret A5 sur du A4 plié en 2), en choisissant l'imprimante de destination parmi celles installées (sous cups).Pour cela il faut avoir cups d'installé, ainsi pdfnup (disponible dans le paquet pdfjam), et pdfbook pour le mode livret (à compiler soi-même, on peut le trouver ici : ftp://cam.ctan.org/tex-archive/support/pdfbook.zip)
Trêve de blabla, voici le script
#!/bin/bash #!/bin/bash #Propose d'imprimer un pdf format A4 en 2 page par feuilles recto-verso (simple ou livret), pour des imprimantes ne gérant pas le recto verso. #(avec choix de l'imprimante en fonction des imprimantes installées) #nécessite cups, ainsi que le programme pdfnup disponible dans le paquet pdfjam #L'impression en mode livret nécessite l'installation de pdfbook (à compiler soi-même, on peut le trouver ici : ftp://cam.ctan.org/tex-archive/support/pdfbook.zip) rvsimple="recto-verso simple" livret="mode livret" fich=$1 #Si aucun fichier n'est donné en argument, on en choisi un if test $# -eq 0; then if ! fich=`zenity --title="Entrez le fichier pdf à imprimer" --file-selection`; then exit; fi fi #choix de l'imprimante (l'imprimante par défaut est proposée par défaut ;) if ! lpr=$(zenity --entry --title="imprimante" --text="Choix de l'imprimante" --entry-text="$(lpstat -d | awk -F": " '{print $2}')" $(lpstat -a | awk -F" " '{print $1}')); then exit; fi basefich=`dirname $fich`/`basename $fich pdf` tmpfich="$basefich"1.book.pdf if ! choix=$(zenity --list --title="choix du format" --column="choix" --column="format" \ --radiolist true "$rvsimple" \ --radiolist false "$livret" ); then exit; fi if ! $(zenity --title="Poursuivre l'impression?" --question --text="Impression du fichier $fich en mode $choix sur l'imprimante $lpr ! \nContinuez?"); then exit ; fi #mise en page (2 pages par feuilles selon le mode choisi) if [ "$choix" = "$livret" ]; then pdfbook -2 "$fich" "$tmpfich" else pdfnup --nup 2 "$fich" --paper a4paper --orient landscape --outfile "$tmpfich" fi #attendre que la mise en page soit finie wait #impression du recto lp -d "$lpr" -o page-set=odd -o number-up=1 -o outputorder=reverse "$tmpfich" | zenity --title="Impressio du recto" --progress --pulsate --auto-close if ! $(zenity --title="Recto imprimé" --question --text="Recto envoyé à l'impression \nAttendez la fin de l'impression et retournez les feuilles dans le bac de l'imprimante! \nContinuez?"); then rm "$tmpfich" exit fi #impression du verso lp -d "$lpr" -o page-set=even -o number-up=1 "$tmpfich" | zenity --title="Impressio du verso" --progress --pulsate --auto-close rm "$tmpfich" #confirmation zenity --title="Impression ok" --info --text="Verso envoyé à l'impression"
Usage :
sh ./print-pdf2book.sh document.pdf
ou alors, a placer dans les scripts nautilus, et l'utiliser en cliquant sur une fichier pdf.
Si aucun fichier n'est donné en argument, un fenêtre apparait et permet de choisir un fichier.
Le plus gros problème reste de savoir comment retourner les feuilles (attention, je crois que ce n'est pas pareil en r&v simple et en livret, à vous de tester).
Pour info, c'est une modif' dun script trouvé ici : http://memo-gf.blogspot.com/2008/03/a5book.html (j'en remercie l'auteur, jusque là je n'avais jamais jeté un oeil à Zenity).
NB : il est ultra facile de réécrire ce script pour des fichiers ps, mais personnellement, j'imprime plus de pdf.
PS : si qqn à besoin d'une version ligne de commande seulement (en enlevant l'utilisation de zenity), qu'il me le fasse savoir.
Je n'arrive pas à faire marcher ce script, voici l'erreur qu'il me retourne :
pdfnup ERROR: the --orient option is not allowed,
use --landscape or --no-landscape to specify
the output page orientationlp : erreur - impossible d'accéder à « /1.book.pdf » - Aucun fichier ou dossier de ce typelp : erreur - impossible d'accéder à « /1.book.pdf » - Aucun fichier ou dossier de ce typerm: impossible de supprimer «/1.book.pdf»: Aucun fichier ou dossier de ce type
Savez-vous d'où cela peut venir ?
Hors ligne
#1388 Le 12/05/2011, à 17:39
- fredz68
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour, j'ai trouvé un script nautilus sympa qui converti les wav en mp3 ou ogg par lots, mais j'aimerai savoir si il est difficile d'intégrer la conversion par lot de mp3 en wav ou ogg...
Voici le petit :
#!/bin/bash
# rem. : pour avoir les boites de dialogue au premier plan,
# installer le paquet zenity - 2.26.0-0ubuntu2 ou supérieur
# ou installer le patch pour zenity (bug zenity-focus)
version="V0.4"
#V0.4 : encodage flv video vers avi et inversement, traitement par lots audio et video.
#####################################################################
# MMConvert :
# Ce script sert à convertir des fichiers multimédia
######################################################################
######################################################################
## Fenêtres Zenity
title="MMConvert $version"
not_man="non géré..."
f_fi="Format de fichier"
pac_zenity="Vous devez installer le paquet 'zenity' pour utiliser ce script."
pac_ffmpeg="Vous devez installer le paquet 'ffmpeg' pour utiliser ce script."
no_fic="Veuillez sélectionner au moins un fichier à convertir ;) "
please_sel="Veuillez choisir le format dans lequel convertir :"
give_name="Veuillez donner un nom au dossier de destination (ex: le nom de l'album)"
suppr_fi="Souhaitez-vous supprimer les fichiers originaux aprés conversion ?"
bye="Annulation.................... A bientôt."
OK=" Conversion terminée !"
######################################################################
## AJOUTER ICI LA LISTE DES FORMATS GERES ET LEUR EXTENSION
## (l'orthographe exacte des mots de la liste
# peut être récupérée par un 'file -b fichier')
list_OK="Mp3 Wave Flash Vorbis"
extension=".mp3 .wav .flv .ogg .avi"
######################################################################
## CONTROLES
# Recherche du paquet 'zenity'. Si absent : exit
dialog=`which zenity`
if [ "$dialog" = "" ]; then
zenity --error --title="$title" --text="$pac_zenity"
exit
fi
# Recherche du paquet 'ffmpeg'. Si absent : exit
encod=`which ffmpeg`
if [ "$encod" = ""]; then
zenity --error --title="$title" --text="$pac_ffmpeg"
exit
fi
# Si pas de fichier d'entrée (!) : exit.
if [ "$1" = "" ]; then
zenity --error --title="$title" --text="$no_fic"
exit
fi
## CONVERSION
# Demande du format de sortie souhaité :
format_out=$(zenity --entry --title="$title" \
--text="$please_sel" \
--entry-text=$extension);
if [ $? != 0 ]; then # annulation
zenity --error --title="$title" --text="$bye"
exit
fi
# Demande d'un nom de dossier où sauvegarder le(s) fichier(s) converti(s) :
dossier=$(zenity --entry --title="$title" --text="$give_name" --entry-text="MMConvert")
if [ $? != 0 ]; then # annulation
zenity --error --title="$title" --text="$bye"
exit
fi
# Supprimer les originaux après conversion ?
suppr=$(zenity --title="$title" --text="$suppr_fi" \
--list --radiolist --column " " --column " " TRUE "OUI" FALSE "NON")
if [ $? != 0 ]; then # annulation
zenity --error --title="$title" --text="$bye"
exit
fi
mkdir "$dossier"
a=1
nb_fi=$#
until [ -z "$1" ] # Jusqu'à épuisement des fichiers...
do
pourcentage=$[$a*100/$nb_fi]
# Par fichier : recherche du format d'origine.
format_in=$not_man
for i in $list_OK
do # Si le format d'origine est géré : traitement...
if [ "`file -b "$1" | grep "$i"`" != "" ]; then
name_file=`echo "$1" | sed 's/\.\w*$/''/'`
fi_out=$name_file$format_out
if [ "$format_out" = ".avi" ]; then # Conversion video
ffmpeg -b 768k -ab 128k -i "$1" -f avi "./$dossier/$fi_out" \
| zenity --progress --title="$title" \
--text="Conversion de : ' $name_file ' en $format_out ($a sur $nb_fi fichiers)" \
--percentage="$pourcentage" --auto-close
else #conversion audio
ffmpeg -ab 192k -i "$1" "./$dossier/$fi_out" \
| zenity --progress --title="$title" \
--text="Conversion de : ' $name_file ' en $format_out ($a sur $nb_fi fichiers)" \
--percentage="$pourcentage" --auto-close
fi
if [ "$?" != "0" ] ; then # Annulation
zenity --error --title="$title" --text="$bye"
exit
fi
let a=$a+1
format_in=" "
if [ "$suppr" = "OUI" ]; then
rm ./"$1" # Suppression de l'original en flv
fi
fi
done
#... sinon : on passe au fichier suivant,
# aprés avoir complété la liste des fichiers non traités.
if [ "$format_in" = "$not_man" ]; then
echo $f_fi$not_man : $1 >> ./"$dossier"/non_traites.log
fi
shift
done
zenity --info --title="$title" --text="$OK"
exit 0
Merci d'avance.
fredz68
Hors ligne
#1389 Le 12/05/2011, à 19:50
- runcom
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
beudbeud a écrit :Oreste visari a écrit :Personne n'as de script pour télécharger l'émission "c dans l'air" qui passe sur france 5 en semaine vers les 17H30 ?
J'adore cette émission mais je ne peut la regarder qu'en période scolaire, ce qui est vraiment énervant.
Téléchargement de l'émission c dans l'air
- Auteurs : écrit par beudbeud
#!/bin/sh #script de beudbeud mkdir -p $HOME/videos/c_dans_l_air/ DATE=`date +%Y-%m-%d -d '1 days ago'` URL="http://www.france5.fr/c-dans-l-air/index-fr.php?page=resume&id_article=2772&date=" FILE1=` wget -O - -q $URL$DATE | grep mms | awk -F= '{print $4}' | awk -F"&" '{print $1}'` mimms $FILE1 $HOME/videos/c_dans_l_air/$DATE.wmv
ensuite pour automatiser le téléchargement on utilise cron
crontab -e
et tu rajoute la ligne suivante
50 17 tue,wed,thu,fri,sun lien_du/script/lescript.sh
donc le script se lancera du mardi au vendredi a 17h50 pour récupéré l'émission de la veille
Ha oui, ta manière de faire est bien meilleure que la mienne.
Bonjour,
Ce script est complet pour pouvoir telecharger l'émission c dans l'air
merci de votre réponse!!
Hors ligne
#1390 Le 15/05/2011, à 09:12
- omnimax
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Un bloc-note texte : dès qu'un surlignage souris vous interresse > un raccourci clavier assigné au script et c'est directement conservé dans votre bloc note
#!/bin/bash
xclip -o >> ~/blocnote
echo -e "\n" >> ~/blocnote
0 exit
enjoy
14.04 unity et Linux Mint KDE 13 zsh-meilleur shell script fire
Hors ligne
#1391 Le 15/05/2011, à 17:20
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Dans le même genre, je me suis fais un todo :
#!/bin/bash
file=~/.todo
case "$1" in
-h)
echo "\
todo.sh [-f <file>] [commande [adresse]] ...
-f <file>
utilise le fichier <file> au lieu de `sed "s|$HOME|~|" <<< "$file"`
commande :
s supprime la ligne indiquée par l'adresse, efface le fichier si aucune adresse n'est indiquée
t retourne 1 si le fichier est vide, 0 sinon
i insère le reste de la ligne de commande après la ligne indiqué par l'adresse (au début du fichier si l'adresse est 0)
a (ou pas de commande)
insère le reste de la ligne à la fin du fichier
pas d'arguments
affiche le fichier de manière formatée
adresse : c.f. man sed"
exit ;;
-f)
file="$2"
shift 2 ;;
esac
[ -e "$file" ] || touch "$file"
case "$1" in
"")
sed 's/^/ → /' "$file" ;;
s)
sed -ir "${2}d" "$file" ;;
t)
[ -s "$file" ] ;;
i)
line=$(
echo -n "$3"
while [ "$4" ] ; do
echo -n " $4"
shift
done
)
if [ "$2" = 0 ] ; then
sed -i "1i$line" "$file"
else
sed -ir "${2}a$line" "$file"
fi ;;
a)
echo -n "$2" >> "$file"
while [ "$3" ] ; do
echo -n " $3" >> "$file"
shift
done
echo >> "$file" ;;
*)
echo -n "$1" >> "$file"
while [ "$2" ] ; do
echo -n " $2" >> "$file"
shift
done
echo >> "$file" ;;
esac
puis dans mon bashrc :
function clear {
/usr/bin/clear
~/Scripts/todo.sh t && ~/Scripts/todo.sh
}
À l'occasion il faudra que je le factorise un peu...
Sinon, quelqu'un sait comment récupérer la position du curseur dans le prompt ? On peut le faire comme ça :
echo -en "\E[6n"
read -sdR CURPOS
CURPOS=${CURPOS#*[}
mais ça ne marche pas dans un prompt…
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1392 Le 16/05/2011, à 10:29
- frantzd
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Un bloc-note texte : dès qu'un surlignage souris vous interresse > un raccourci clavier assigné au script et c'est directement conservé dans votre bloc note
#!/bin/bash xclip -o >> ~/blocnote echo -e "\n" >> ~/blocnote 0 exit
Merci pour l'info.
Pour celles et ceux qui utilisent l'excellent parcellite, on peut remplacer "xclip -o" par "parcellite -p".
A+
Frantz
http://librephoto.net/
Hors ligne
#1393 Le 22/05/2011, à 11:32
- Kharec
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour à tous, je vous présente ici un script pour retailler automatiquement les images, en les sélectionnant par extension (.*). Il fonctionne grâce à la commande "convert" du soft "imagemagick", vous avertit s'il y a une erreur et vous tiens au courant de son avancement.
#!/bin/bash
i=1
usage='example: ./resizer.sh JPG 1024x768'
if [[ -z $1 ]]
then
echo $usage
exit 1
fi
if [[ -z $(ls *.$1) ]]
then
echo "No file found, or bad file type. ($usage)"
exit 1
fi
echo "$(ls *.$1 | wc -l | awk 'NR==1 {print $1}') file(s)..."
for file in *.$1
do
convert $file -resize $2 $file
if [[ $? == 0 ]]
then
echo "$i: $file --------> OK."
else
echo "Error on file $file"
exit 1
fi
((i++))
done
exit 0
Enjoy
Hors ligne
#1394 Le 22/05/2011, à 12:10
- le hollandais volant
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour, vu que le titre suggère qu'il est possible de demander un scripts…
J'utilise le navigateur Opera, et il se trouve que le module WOT (web of trust) soit responsable d'une consommation excessive de mémoire quand je suis hors ligne.
Ainsi, d'un seul coup, Opera se met à utiliser mes 2Go de RAM ainsi que toute la SWAP et c'est un plantage complet de l'ordinateur si rien n'est fait.
J'utilise pour le moment un bouton "urgence Opera" avec la commande suivante pour le tuer :
kill -9 `ps -u timo | grep 'opera' | cut -d ' ' -f 1`
Au moment où ça commence à laguer, je tue Opera et en général ça marche (si j'interviens trop tard, plus rien ne répond).
J'aimerais savoir s'il y'avait possibilité d'ouvrir un popup de Gnome me signalant qu'Opera dépasse un seuil d'utilisation de mémoire.
Par exemple, s'il dépasse 500Mio en mémoire, un popup s'ouvre et m'avertit.
Idéalement, il y aurait un bouton "tuer Opera" et un autre "ne rien faire".
Je pense que pour l'occupation mémoire il faille utiliser un grep et des cut sur ps :
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS | grep -E '^[0-9]{6,} .*/opera' | cut -d ' ' -f 1
Mais ensuite, je ne sais pas s'il y'a plus simple que cette commande à rallonge, ni comment continuer pour afficher le popup dés que la valeur retournée dépasse disons 500'000 Ko.
Tout cela est-il possible au moyen d'un scripte ??
Merci !
Hors ligne
#1395 Le 22/05/2011, à 13:40
- Levi59
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Il y a plusieurs façons de faire...
la plus simple qui me vienne à l'esprit c'est un petit script lancé en même temps que opera du style:
#!/bin/bash
while (1)
do
PROCESS=$(pgrep -c opera)
[[ ${PROCESS} -ne 0 ]] && {
MEM=0
while read
VALMEM=${REPLY##* }
MEM=$(echo "$VALMEM+$MEM" | bc)
done < <(ps -eo args,%mem | grep -i '^opera')
MEM=${MEM%.*}
[[ "${MEM}" -gt 25 ]] && killall opera
} || exit 0
sleep 10
done
exit 0
(Je n'ai pas testé donc il faut vérifier de ton coté)
Dernière modification par Levi59 (Le 22/05/2011, à 13:48)
Hors ligne
#1396 Le 22/05/2011, à 15:53
- Rolinh
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@le hollandais volant: au passage, plutôt que
kill -9 `ps -u timo | grep 'opera' | cut -d ' ' -f 1`
pkill opera
c'est un peu plus court
Hors ligne
#1397 Le 22/05/2011, à 15:57
- omnimax
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour à tous,
savez-vous comment on code le comportement suivant :
je glisse un fichier texte sur gedit > gedit s'ouvre avec le fichier en question
merci si jamais
14.04 unity et Linux Mint KDE 13 zsh-meilleur shell script fire
Hors ligne
#1398 Le 22/05/2011, à 16:09
- le hollandais volant
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@Levi59 :merci, j'ai repris ton squelette et ça marche.
J'ai changé quelques truc aussi.
@Rolinh : y'a aussi "killall", mais le "kill -9" est plus violent, et c'est ce qu'il me faut ici.
Quand Opera bouffe toute la mémoire, j'ai quelques secondes pour le tuer, avant le freeze total :-/
J'ai découvert entre temps ceci : kill -9 `pgreg opera`.
Au final, j'utilise une boite de dialogue Zenity pour demander confirmation.
Le scripte doit être lancé avant ou en même temps que le processus à assassiner.
#!/bin/bash
# Process name to check out
NAME=opera
# Memory limit, in KB
MEM_LIM=400000
while [ 1 = 1 ]
do
PROCESS=$(pgrep -c $NAME); # count processes
[[ ${PROCESS} -ne 0 ]] && {
# get mem (in KB) of process 'NAME'
VALMEM=`ps -e orss,comm | grep $NAME | cut -d ' ' -f 1`
if [ $VALMEM -gt $MEM_LIM ]
then
zenity --question --text "$NAME reaches $VALMEM KB" --ok-label "Kill $NAME" --cancel-label "Remember later"
RETOUR="$?"; # annuler = 1 ; valider = 0
if [ $RETOUR = 0 ]
then
kill -9 `pgrep $NAME`;
fi
fi
} || exit 0
sleep 30
done
exit 0
Merci à vous !
Dernière modification par le hollandais volant (Le 22/05/2011, à 16:09)
Hors ligne
#1399 Le 22/05/2011, à 16:43
- Rolinh
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Ouep. Par curiosité, c'est sûr Opera 11.11 ton bug? Parce que chez moi, ràs.
Hors ligne
#1400 Le 22/05/2011, à 16:59
- le hollandais volant
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Ouais, Opera 11.11 avec WOT.
J'ai signalé le bug sur Opera-fr, ce sont eux qui m'ont signalé que ça venait d'un module, et ça semble bien être la cas. Sans WOT, y'a pas de soucis…
Dernière modification par le hollandais volant (Le 22/05/2011, à 16:59)
Hors ligne