Salut,
Dans la série script tout bête, voici les miens :
Ce script permet de "killer" un processus qui bloquerait la carte son sans relancer le système ou tout alsa.
Chez moi, et donc sous Xfce, un "alsa reload" ne relance pas alsa (manque de droit) mais affiche un warning avec les process qui accèdent à la carte son : xfce-mcs-manager ne gène pas, mais si il est kill les thèmes disparaissent ... donc autant le flitrer.
Si d'autres personnes sont sous Xubuntu, ce script peu leur servir !
Nécessite : alsa ; zenity
Usage : à lancer sans argument
#!/bin/bash
declare -ax list
declare -ix long_max=0
declare -ix ligne_max=0
for i in $(alsa reload 2>&1 | grep 'Processes using sound devices:' | grep -o '[0-9]*')
do
_tmp=$(ps -p $i -o command=)
if [ "$_tmp" != "xfce-mcs-manager" ]
then
list+=( TRUE )
list+=("'$_tmp'")
list+=($i)
ligne_max+=1
if [ "${#_tmp}" -gt "$long_max" ]
then
long_max=${#_tmp}
fi
fi
done
if [ "${#list[*]}" -gt 0 ]
then
largeur=$((long_max * 5 + 350))
hauteur=$((ligne_max * 60 + 80))
list_pid=( $(eval zenity --list --checklist --title="'Processus utilisant la carte son...'" --text="'Selectionner le processus à tuer'" --column='choix' --column='processus' --column='pid' --print-column='3' --hide-column='3' --separator='" "' --width=$largeur --height=$hauteur ${list[*]} ) )
if [ "${#list_pid[*]}" -gt 0 ]
then
eval kill ${list_pid[*]}
exit 0
else
echo "Aucun processus tué"
exit 1
fi
else
zenity --info --title="Processus utilisant la carte son..." --text="Aucun processus anormal ne bloque la carte son."
exit 2
fi
exit 0
Autre script : redescendre d'un niveau tout les fichiers contenu dans les sous-dossiers du dossier courant (ou dossier en argument) ...
En gros, il arrive parfois d'avoir plusieurs sous-dossiers après l'extraction d'une archive (par exemple), plutôt que d'aller dans chaque dossier pour tout déplacer dans le dossier parent, je lance ce script 😃
(via clic droit, ouvrir une console ici, puis le ./nom_du_script (chez moi "rmf")
Nécessite : bash (mais doit marcher sur tout shell)
Usage : admet 0 ou 1 argument, les autres seront ignorés.
__
sans argument : déplace le contenu des sous-dossiers dans le dossier courant
__
si 1 argument : se place dans ce dossier, puis déplace le contenu des sous-dossiers de ce dossier dans ce dossier.
On doit aussi pouvoir l'associer via nautilus-action ... (pas testé)
#!/bin/bash
# {
cd "$(pwd)"
if [ -d "$1" ]
then
cd "$1"
fi
echo -e "#Traitement de :\t\t\t$(pwd) ..." | tee -a rmf.log
for DIR in *
do
if [ -d "$DIR" ]
then
echo -e "#Déplacement de :\t\t$(pwd)/$DIR/* ..." | tee -a rmf.log
mv -v "$(pwd)"/"$DIR"/* -t "$(pwd)" >> rmf.log
echo -e "#Suppression du dossier :\t$(pwd)/$DIR ..." | tee -a rmf.log
rmdir "$(pwd)"/"$DIR" >> rmf.log
else
echo -e "#Omission de :\t\t\t$(pwd)/$DIR" | tee -a rmf.log
fi
done
echo "#Rapatriement terminé" | tee -a rmf.log
#sleep 1
# } | zenity --progress --title "Rapatriement des fichiers et sous-dossiers ..." --auto-kill --auto-close --pulsate
}
Je travaille aussi sur un ensemble de script pour réaliser des copies "en chaine" comme le faisait SuperCopier sur Windows ... mais je manque de temps pour débugger et je voudrais pas poster un truc qui plante 😃 (et puis je débute en scripting bash 😉