Outils pour utilisateurs

Outils du site


linux:scripts_bash:vrac

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:scripts_bash:vrac [29/12/2008 12:50] – lister fichiers avec md5 daniellinux:scripts_bash:vrac [22/07/2010 17:29] (Version actuelle) daniel
Ligne 5: Ligne 5:
   * date => timestamp : ''date -d "2008-01-17 16:05:44 CET" "+%s"''   * date => timestamp : ''date -d "2008-01-17 16:05:44 CET" "+%s"''
   * timestamp => date : ''date -d "1970-01-01 UTC +1200582344 seconds"'', que l'on peut formater avec par exemple ''date -d "1970-01-01 UTC +1200582344 seconds" "+%d/%m/%Y %H:%M:%S"''   * timestamp => date : ''date -d "1970-01-01 UTC +1200582344 seconds"'', que l'on peut formater avec par exemple ''date -d "1970-01-01 UTC +1200582344 seconds" "+%d/%m/%Y %H:%M:%S"''
 +
  
 ===== lister fichiers avec md5, taille, etc ===== ===== lister fichiers avec md5, taille, etc =====
Ligne 11: Ligne 12:
 rep=dossier_dans_lequel_chercher rep=dossier_dans_lequel_chercher
 csv=liste_fichiers.csv; csv=liste_fichiers.csv;
-echo '"Dossier";"Fichier";date;heure;taille;md5' > $csv;+echo '"Dossier";"Fichier";md5sum;date;heure;taille' > $csv;
 find "$rep" -type f|while read f; find "$rep" -type f|while read f;
 do do
Ligne 17: Ligne 18:
   rep="$(dirname "$f")";   rep="$(dirname "$f")";
   md5=$(md5sum "$f"|cut -d " " -f 1);   md5=$(md5sum "$f"|cut -d " " -f 1);
-  ls -"$f" | awk ' +  echo -n "\"$rep\";\"$fich\";$md5;">>$csv; 
-    BEGIN{rep="'"$rep"'"; md5='"$md5"' ;fich="'"$fich"'";} +  ls -l "$f| awk '{print $6";"$7";"$5}' >> $csv;
-    {print "\""rep"\";\""fich"\";"$6";"$7";"$5";"md5}' >> $csv;+
 done; done;
 </code> </code>
Ligne 77: Ligne 77:
 # ensuite, si tout est OK, on peut effacer img.bak et tmp # ensuite, si tout est OK, on peut effacer img.bak et tmp
 </code> </code>
 +
  
 ===== Colorer la sortie d'un script ===== ===== Colorer la sortie d'un script =====
Ligne 84: Ligne 85:
 KO='[ \e[0;47m\e[0;31mKO\e[0;00m ]' KO='[ \e[0;47m\e[0;31mKO\e[0;00m ]'
 commande && echo -e $OK || echo -e $KO commande && echo -e $OK || echo -e $KO
 +</code>
 +
 +
 +
 +
 +===== Récupérer les journaux de france culture =====
 +D'après leur podcast
 +<code bash>
 +[ $# -ne 1 ] && echo "Il faut passer un argument (7,12,18,22) pour le journal choisi)" && exit 1
 +
 +urls=([7]=http://radiofrance-podcast.net/podcast09/rss_10055.xml [12]=http://radiofrance-podcast.net/podcast09/rss_10059.xml [18]=http://radiofrance-podcast.net/podcast09/rss_10060.xml [22]=http://radiofran
 +url=''
 +for i in ${!urls[*]}
 +do
 +  [ $1 -eq $i ] && url=${urls[i]} && h=$i
 +done
 +[ -z "$url" ] && echo "Vous devez donner un journal existant (7, 12, 18 ou 22)" && exit 1
 +
 +wget $url -O fc${h}.xml
 +mp3=$(sed -nre '
 +{
 +  :boucle
 +  N
 +  $! b boucle
 +}
 +s#.*http://([^<]*)</guid>.*#http://\1#p' < fc${h}.xml)
 +
 +echo -e "\nOn va essayer de récupérer \e[0;47m\e[0;32m$mp3\e[0;00m\n"
 +wget "$mp3" -O fc${h}.mp3 && rm -f fc${h}.xml
 +</code>
 +
 +Et avec zenity (à peaufiner...)
 +<code bash>
 +#!/bin/bash
 +
 +# les urls des rss, à modifier si ça devait changer...
 +urls=([7]=http://radiofrance-podcast.net/podcast09/rss_10055.xml [12]=http://radiofrance-podcast.net/podcast09/rss_10059.xml [18]=http://radiofrance-podcast.net/podcast09/rss_10060.xml [22]=http://radiofrance-podcast.net/podcast09/rss_10061.xml)
 +
 +# qq tests
 +which zenity >/dev/null
 +# Attention avec $?, 0 => OK, on change
 +[ $? -eq 0 ] && zenok=TRUE || zenok=FALSE 
 +
 +which notify-send >/dev/null
 +[ $? -eq 0 ] && notifok=TRUE || notifok=FALSE
 +# faudrait plutôt se baser sur le test [ -z "$TERM" ]
 + 
 +
 +# les fonctions
 +
 +get_heure() {
 +  if [ $# -eq 0 ] && [ "$zenok" = "TRUE" ]
 +  then
 +    ret=$(zenity --title='Lequel ?' --text="Attention, pas de barre de progression,\nça télécharge puis s'ouvrira tout seul" --height=250 --list --radiolist \
 +      --column='' --column='Journal de' \
 +      'FALSE' 7h \
 +      'TRUE' 12h30 \
 +      'FALSE' 18h \
 +      'FALSE' 22h)
 +    [ -z "$ret" ] && exit 0 # clic sur annuler
 +    case "$ret" in
 +      7h)     h=7;;
 +      12h30) h=12;;
 +      18h)   h=18;;
 +      22h)   h=22;;
 +      *) set_msg "Heure $ret inconnue" && exit 1;;
 +    esac
 +  else
 +    [ $# -ne 1 ] && echo "Il faut passer un argument (7,12,18,22) pour le journal choisi)" && exit 1
 +    h=$1
 +  fi
 +  return $h
 +}
 + 
 +set_msg() {
 +  [ $notifok = "TRUE" ] && notify-send -t 1000 $1 || echo $1
 +}    
 + 
 +check_heure() {
 +  url=''
 +  for i in ${!urls[*]}
 +  do
 +    [ $1 -eq $i ] && url=${urls[i]} && h=$i
 +  done
 +  [ -z "$url" ] && set_msg "Vous devez donner un journal existant (7, 12, 18 ou 22)" && exit 1
 +}
 + 
 +ask2continue() {
 +  if [ $zenok = TRUE ]
 +  then
 +     zenity --question --text="$1"
 +     [ $? != "0" ] && exit 0
 +  else
 +    echo $1
 +    echo "Continuer ? (o/n)"
 +    read rep
 +    [ "$rep" != 'o' ] && echo "Abandon" && exit 0
 +  fi
 +}
 + 
 +get_url() {
 +  xml="/tmp/fc${h}.xml"
 +  wget $url -O "$xml"
 +  mp3=$(sed -nre '
 +    {
 +      :boucle
 +      N
 +      $! b boucle
 +    }
 +    s#.*http://([^<]*)</guid>.*#http://\1#p' < $xml)
 + 
 +  jour=$(date '+%d.%m.%Y')
 +  [ "$(echo $mp3|grep -c $jour)" != '1' ] && ask2continue "Apparemment ce n'est pas le journal du jour : $mp3\nOn continue quand même ?"
 + 
 +  # si abandon on est déjà sorti
 +  fich=/tmp/fc${h}.mp3
 +  wget "$mp3" -O $fich
 +  if [ $? ]
 +  then
 +    rm -f fc${h}.xml
 +    set_msg "On a récupéré un mp3 ($fich)"
 +    xdg-open $fich
 +#    rm -f $fich # xdg rend la main tout de suite
 +  fi
 +}
 + 
 +# et le main
 +get_heure $*
 +h=$?
 +check_heure $h
 +get_url $url
 </code> </code>
  
linux/scripts_bash/vrac.1230551412.txt.gz · Dernière modification : 29/12/2008 12:50 de daniel