Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Tue 22 Oct 2019, 12:50
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Cataloguer le contenu de ses partitions et fouiller dedans
Moderators: Béèm, darkerror05, linuxcbon
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [4 Posts]  
Author Message
musher0

Joined: 04 Jan 2009
Posts: 14413
Location: Gatineau (Qc), Canada

PostPosted: Wed 20 Mar 2019, 05:53    Post subject:  Cataloguer le contenu de ses partitions et fouiller dedans
Subject description: sans se fatiguer !
 

Bonjour à toutes et à tous.

J'avais produit il y a quelques années un script utilisant slocate pour cataloguer
ses fichiers et les retrouver facilement.

Après mûrissement de la question, je crois que ceci est mieux -- et plus simple.
-- Le bottin est centralisé dans /mnt/sda1/arbos
---- donc il ne prend pas de place dans votre pupsave.

-- pas besoin d'utilitaire spécialisé
---- tout se fait avec les moyens du bord :
---- awk, tree, ligne-de-points.sh, zip pour la constitution
---- le script Recherche.sh et zgrep pour la consultation.

-- c'est pas un GUI, mais presque
---- les séquences de couleuir ANSI sont abondamment mises à contribution.

-- zgrep, sur lequel je suis tombé par hasard, mais qui réside dans tous les
-- Puppys depuis toujours, s'avère un outil fabuleux :
---- les bottins sont zippés et pourtant, on trouve ce que l'on cherche en
---- un rien de temps.

-- choix de couleur, vert ou bleu, pour la barre de progrès. Se choisit dans le
-- « wrapper ». Par défaut, ce sera en bleu.

-- utilise l'utilitaire nice « en faveur de la machine » comme dit le manuel. Donc
-- prévoyez un moment de la journée où vous avez autre chose à faire que de
-- l'ordinateur : le café, tiens, ou bien aller chercher du pain et du lait chez le
-- dépanneur du voisinage. Au retour, vous aurez des listes à jour !

-- je vous recommande de mettre à jour tous les jours si vous êtes un utilisateur
-- moyen.

-- J'ai configuré tree pour qu'il mette un maximum d'infos dans les listes, semblale
-- à ce que fournit < ls -Algo >. Donc tout est là : permissions, taille, en plus du
-- nom et du chemin, bien évidemment.

-- Ce qui fait de grosses listes, d'où la nécessité de les zipper. La liste de ma
-- partition sur sdh3 faisait 78 Mb, voyez...

-- Et c'est ici qu'entre en scène un brillant p'tit vieux d'utilitaire, l'air négligé Wink,
-- la barbe pas faite, mais qui sait vous trouver n'importe quoi dans ce bottin en
-- une seconde ou deux.
-- J'ai nommé « zgrep ». Qui s'utilise comme le grep ordinaire, sauf pour des
-- trucs pointus comme fouiller dans plusieurs répertoires à la suite. etc.

Je joins des captures d'écran ici pour vous mettre l'eau à la bouche. Smile

Les scripts en clair suivent. S.v.p. lire les commentaires qu'ils contiennent ?
Ça vous évitera bien des frustrations, croyez-moi !

Dans l'espoir que ces scripts vous seront utiles.
arbos-0.1.pet
Description 
pet

 Download 
Filename  arbos-0.1.pet 
Filesize  6.06 KB 
Downloaded  82 Time(s) 
arbos.sh-vert.jpg
 Description   
 Filesize   184.72 KB
 Viewed   128 Time(s)

arbos.sh-vert.jpg

arbos.sh-tamisé.jpg
 Description   
 Filesize   186.55 KB
 Viewed   129 Time(s)

arbos.sh-tamisé.jpg

arbos.sh-bleu.jpg
 Description   
 Filesize   174.3 KB
 Viewed   130 Time(s)

arbos.sh-bleu.jpg


_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)

Last edited by musher0 on Fri 22 Mar 2019, 01:49; edited 4 times in total
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 14413
Location: Gatineau (Qc), Canada

PostPosted: Wed 20 Mar 2019, 06:16    Post subject:  

Rebonjour.

Voici les scripts.

~~~~~~~~~~~~~~~~
Code:
#!/bin/bash
# /mnt/sda1/arbos/arbos.sh
#
# Objectif -- Créer une liste zippée de fichiers pour
# chacune de vos partitions, pour consultation rapide.
#
# Requiert awk, tree, ligne-de-points.sh, et zgrep pour la consultation.
#
# Particularité -- Tout se déroule dans le répertoire /mnt/sda1/arbos
#
# (c) musher0, 15-19 mars 2019. GPL3.
####
CLR="$1"
[ "$CLR" = "" ] && CLR="123"
cd /mnt/sda1
mkdir -p arbos # En-cas.
ReP=/mnt/sda1/arbos

cd $ReP

LeFaire () {
echo -e "\e[0m\n$line\e[4m\e[38;5;90m\e[48;5;${CLR}m"
# 90 : vin # 123 : bleu ciel # 118 : vert pomme
$ReP/ligne-de-points.sh & # ligne de progrès
nice -n -20 tree -fishpu -L 10 /mnt/$line > /mnt/sda1/arbos/$line.arbo
kill -s 15 `ps | awk '$NF ~ /points\.sh/ && $4 !~ /geany/ { print $1 }'` 2>/dev/null
# echo -ne "e\[0m" # Évite le barbouillage. # < ligne-de-points.sh > le fait.
}

mount | awk '$1 ~ /sd/ && $3 !~ /save/ { print $1,$3,$5,$6 }' | awk -F"\/" '{ print $3}' > $ReP/liste-sd
echo -e "\t\e[1;4mCataloguer prend du temps. Merci de votre patience.\e[0m
\t Je crée une liste de fichiers pour la partition...
\e[1A"
line=""
while read line;do
   cd /mnt/$line
     LeFaire
done < $ReP/liste-sd

cd $ReP
>Puppy.arbo # Pour cataloguer le système Puppy lui-même
for rep in bin boot etc home lib opt root sbin usr var;do
     nice -n 10 tree -fishpu -L 10 /$rep >> Puppy.arbo
     echo "." >> Puppy.arbo
done

# Datation
MAJ="`date '+%Y-%m-%e_%Hh%m'`";echo "Mis à jour le $MAJ." > $ReP/MAJ-$MAJ
echo -e "\e[0m\n\n\tLe zippage des listes prend quelques
\tsecondes. Merci de votre patience."
line=""
ls -1 *.arbo | while read line;do
   zip -9muq $line.zip $line
done
echo -e "\n\t\t\e[4mTerminé !\e[24m
\t   Vous pouvez maintenant consulter
\t       les listes à l'aide de zgrep.\e[0m\n'"
read
# Taper sur la touche « Entrée » pour clore la fenêtre.


~~~~~~~~~~~~~~~~
Code:
#!/bin/bash
# wrapper/arbos.sh # Lanceur pour arbos.sh
#
# Recommandation - Lancer quotidiennement afin de tenir
# ------------------------- vos listes à jour.
#
# Note -- Avec une console de 49 lignes, comme ci-dessous,
# --------- accommodera de 15 à 17 partitions. La ligne de points
# --------- fait « perjuter » la couleur quand elle atteint le bas de
# --------- la console. Remarquez, le script continue de bien faire
# --------- son boulot, mais l'affichage est moins joli.
#
# (c) Christian L'Écuyer, 19 mars 2019. GPL3.

####
FadE="fade 70 -fadecolor "#94A495""
PntR="uc -hc blue -cr gold -pr green -pr2 yellow +pb"
urxvt -$FadE -$PntR -tr -g 70x49+222+32 -b 30 -e /mnt/sda1/arbos/arbos.sh 123
# 123 : bleu ciel (par défaut) # 118 : vert pomme
# Colore le fond de la barre de progrès.


~~~~~~~~~~~~~~~~
Code:
#!/bin/ash
# ligne-de-points.sh
#
# Objectif -- Imprimer dans le terminal une ligne
# ------------- de points pendant un long processus.
#
# Usage --  Incorporer sur une ligne convenable du script
# ------------ principal, en arrière-plan, JUSTE AVANT
# ------------ la commande lançant le long processus.
#
# Exemple -- < ligne-de-points.sh & # Noter l'importante éperluette !
# --------------- < cp -f Gargantuesque_Fichier Répertoire_de_Destination
#
# Inspiré des idées exposées à
# https://stackoverflow.com/questions/238073/ \
# how-to-add-a-progress-bar-to-a-shell-script.
# Relevé le 14 mars 2019 en soirée.
#
# (c) musher0, 15 mars 2019. GPL3.
####
for j in `seq 10`;do # Minutes
     for i in `seq 30`;do # Secondes
# « `seq 30` » ici et « sleep 2s » ci-dessous = 30 fois par minute,
# c.-à-d. un point toutes les deux secondes.
#
# Si on veut voir apparaître un point à toutes les secondes,
# mettre « `seq 60` » ici, et « sleep 1s » à la ligne ci-dessous.
#
          P="."
# On peut mettre autre chose qu'un point, le caractère « ~ », par ex.
          echo -ne "$P"
# Le paramètre < -n > signifie : « Imprime la chaîne suivante sur la même ligne. »
#
# Le paramètre < -e > signifie : « Accepte les séquences ANSI ». Car
# on peut colorer cette ligne à partir du script principal en spécifiant
# des séquences de couleur ANSI.
#
# Par ex., envoyer la commande < echo - "\e[33m" > avant de passer la
# main au présent script fera qu'il imprimera des points de couleur or. En soi,
# le présent script adopte les couleurs par défaut de la console qui le lance.
#
          sleep 2s # 1s
     done
done
echo -e "\e[0m" # En-cas pour la fin, afin d'éviter du barbouillage dans
# la console. Annule les séquences de couleur ANSI si le script principal
# en a utilisé. En d'autres mots, cette commande restaure les couleurs
# de départ de la console.

~~~~~~~~~~~~~~~~
Code:
#!/bin/sh
# Recherche.sh
#
# Objectif -- Chercher un nom de fichier dans
# ----------- les listes zippées « *.arbo »
# ----------- crées par le script < arbos.sh >.
#
# Requiert -- Zgrep, et au moins une liste de fichiers
# ----------- zippée créée par le script < arbos.sh >.
#
# Usage -- Recherche.sh nom_de_fichier
#
# Exemple -- Recherche.sh [Dd]anser
#
# Note 1 -- S'utilise en console.
# Note 2 -- En gros, zgrep accepte la plupart des paramètres de grep,
# --------- y compris les « regex » (expressions régulières). Faire
# --------- une recherche simple ne devrait donc pas causer d'ennui.
# --------- S.v.p. taper < zgrep --help > pour connaître ses limites.
#
# (c) Christian L'Écuyer, 19 mars 2019. GPL3.
# (Alias « musher0 » dans le forum PuppyLinux)
####
Q="$1" # Le terme ou nom de fichier recherché.
for j in a b c d e f g h;do # Recherche sur les disques
   for i in 1 2 3 4 5 6 7 8; # et sur leurs partitions.
      do zgrep $Q sd$j$i.arbo.zip 2>/dev/null | more
   done
done

~~~~~~~~~~~~~~~~

À la bonne vôtre !

_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)

Last edited by musher0 on Thu 21 Mar 2019, 18:30; edited 1 time in total
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 14413
Location: Gatineau (Qc), Canada

PostPosted: Thu 21 Mar 2019, 18:28    Post subject:  

Bonjour les camarades.

S.v.p. trouver ci-joint la version 0.2 --
Changements --
-- Surtout cosmétiques (voir capture d'écran ci-jointe).
---- On ne se contente plus d'afficher une barre de progrès, on dit aussi quand
---- telle partie est cpmplétée;

-- mais aussi un code plus logique, du moins je crois;

-- ajouté une coupure claire, un à-la-ligne, à chaque minute dans le script
---- ligne-de-points.sh.

-- les séquences ANSI sont davantage mises à profit. Soit dit en passant à
---- quiconque s'y intéresse, elles ne sont pas faciles à maîtriser, mais elles
---- sont d'une grande richesse pour gérer l'écran de la console;

-- ajouté des précautions dans le lanceur et ailleurs.

Pour prévenir les points d'interrogation au-dessus des caboches --
Si vous vous demandez pourquoi la ligne de progrès ne reflète pas la proportion de
la taille de telle ou telle partition, c'est que ce script ne travaille pas avec des tailles
de fichier, mais avec des noms de fichier.

La partition Une-Telle, pour laquelle la barre de progrès semble bien courte, renferme
probablement peu de fichiers, mais des gros fichiers. Inversement, la partition Chose,
qui paraît pourtant minuscule à regarder son occupation sur disque, aura une longue
ligne de progrès si elle contient la série complète des mille et un icônes de BeOS,
d'Haiku, de GulfStream et de Puppy_Standard.

À un autre niveau, j'ai décidé de produire d'abord des versions unilingues, puis
de les traduire s'il y a une demande, ou si je crois que cela apporte quelque chose
à PuppyLinux : j'aurai moins de maux de tête !

Enfin, je suis ouvert à toute amélioration de ces scripts. Merci d'avance.

À la bonne vôtre !
arbos-0.2.pet
Description 
pet

 Download 
Filename  arbos-0.2.pet 
Filesize  6.61 KB 
Downloaded  84 Time(s) 
arbos-02.sh.jpg
 Description   
 Filesize   212.59 KB
 Viewed   110 Time(s)

arbos-02.sh.jpg


_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 14413
Location: Gatineau (Qc), Canada

PostPosted: Fri 22 Mar 2019, 01:30    Post subject:  

Bonsoir.

Voici un script de recherche amélioré.

S.v.p. remplacer celui dans l'archive par celui-ci
en attendant la prochaine version d'arbos.

Merci.
~~~~~~~~~~~~~~~
Code:
#!/bin/bash
# Recherche.sh # V. 02
# et lien symbolique < Recherche >.
# Script complémentaire au script < arbos.sh >.
#
# Objectif -- Chercher un nom de fichier ou de chemin
# ------------- dans les listes zippées « *.arbo », créées
# ------------- par le script < arbos.sh >.
#
# Requiert -- which, grep, zgrep, et au moins une liste de fichiers
# -------------- zippée créée par le script < arbos.sh >.
#
# Usage -- Recherche.sh nom_de_fichier
# Par ex. : Recherche chien
# ----------- affichera en console tous les chemins ou noms de
# ----------- fichier comportant la mention « chien ».
# Par ex. : Recherche.sh [Dd]anser
# ----------- affichera en console tous les chemins ou noms de
# ----------- fichier comportant la mention « Danser » ou « danser ».
#
# S.v.p. lire les Notes ci-dessous.
# (c) Christian L'Écuyer, 19 et 21 mars 2019. GPL3.
# (Alias « musher0 » dans le forum PuppyLinux)
####
GREP="`which grep`" # Voir le fichier man de zgrep.
# Pour se servir du grep dans le système.

Q="$1" # Le nom de fichier ou une partie du nom de fichier recherché,
# --------- ou encore son chemin ou une partie de son chemin.

if [ "$Q" = "" ];then
     echo -e "\n\t\e[1;33mDésolé, l'ami(e). Il faut avoir \e[4mun but\e[24m dans la vie ! ;)\e[0m\n"

elif [ "$Q" = "--help" -o "$Q" = "--aide" ];then
     echo -e "\n\t\e[1;33mAide -- Taper :
     \e[7m Recherche terme \e[27m\e[21m

          pour \e[4mafficher tout de suite\e[24m la recherche à l'écran;


     \e[1;7m Recherche terme > nom-de-fichier.txt \e[27m\e[21m

          pour obtenir un relevé de votre recherche \e[4mà lire après\e[24m.
\e[0m"

elif [ "`echo $Q | grep -E '[[:alnum:]]'`" = "" ];then
     echo -e "\n\t\e[1;33mDésolé. Le terme recherché contient des
\t     caractères non alpha-numériques.
\e[0m"

# elif [ "`echo $Q | grep -E '\!|\"|\$|#\%|\?|\&|\*|\(|)|\-'`" ];then
     echo -e "\n\t\e[1;33mDésolé. Le terme recherché contient des
\t     caractères réservés au système.
\e[0m"

else
     echo -e "\n\t\e[1;33mTerme acceptable. Je pars à la chasse !\e[0m\n"
     for j in a b c d e f g h;do # Recherche sur les disques
          for i in 1 2 3 4 5 6 7 8; # et sur leurs partitions.
               do zgrep $Q sd$j$i.arbo.zip 2>/dev/null | more
          done
     done
fi
GREP="" # On nettoie la place.

[ "$?" -gt "0" ] && echo -e "\n\t\e[1;33mIl y a eu erreur. Veuillez reprendre.\e[0m]\n"
exit

##########################
Notes
1) -- S''utilise en console.

2) -- En gros, zgrep accepte la plupart des paramètres de grep,
------ y compris les « regex » (expressions régulières). Faire
------ une recherche simple ne devrait donc pas causer d''ennui.
------ S.v.p. taper < zgrep --help > pour connaître ses limites.

3) -- Si on a trouvé ce que l''on cherche, on peut interrompre
------ zgrep en tapant « Cntrl-Z » -- et non pas « Cntrl-C »,
------ comme à l''accoutumée.

4) -- Le terme entré est vérifié jusqu''à un certain point seulement.
------ Il se peut que le script plante si vous lui founissez par mégarde
------ des signes de ponctuation ou des caractères réservés à bash.
------ Si cela arrive,  tapez « Cntrl-Z », relancez le script et retapez
------ le terme que vous recherchez, sans l''erreur.

##########################
Recherche.zip
Description  Le code ci-dessus, zippé.
zip

 Download 
Filename  Recherche.zip 
Filesize  1.79 KB 
Downloaded  84 Time(s) 
Recherche_sh-Messages_d-erreur.jpg
 Description   Entre autres éléments nouveaux dans cette version, des garde-fous.
 Filesize   99.08 KB
 Viewed   104 Time(s)

Recherche_sh-Messages_d-erreur.jpg


_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [4 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1233s ][ Queries: 13 (0.0217s) ][ GZIP on ]