Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1751 Le 23/02/2015, à 15:08

enebre

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour barbican82,
merci de ta réponse, je me demande ou me suis-je trompé, car j'obtiens que ceci:

navigateur a écrit :

Films
Fichiers

    1468055720/home/ombre/Téléchargements/[
    1468301433/home/ombre/Téléchargements/[

le script transformé selon ta réponse (sauf erreur de ma part roll )

#!/bin/sh
#script de recherche récursive des videos avec création d'une page web
# en sudo su , puis on se place dans la racine  cd / puis on lance le script

echo pour chercher tous les films appuyez sur entrée, pour un film en particulier tapez tout ou partie du nom
read rep

##On crée/vide le fichier
> index.html

#Génération de la page web
# en-tête
echo '<html>' >> index.html
echo '<head><title>Mes Films</title><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>' >> index.html
echo '<h1>Films</h1>' >> index.html
echo '<h2>Fichiers</h2><ul>' >> index.html

# recherche des fichiers videos, on se limite aux avi AVI, mp4 MP4 et mkv MKV
if [$rep == ""] ;then 
		find / -type f -iname "*.mp4" -o -iname "*.avi" -o -iname "*.mkv"  -exec ls -l {} \; | awk '{print $5 $9}' | while read i
			#on ajoute les fichiers trouvés dans la page html
	do
		echo '<li><a href="'${i}'">'${i}'</a></li>' >> index.html
	done

else 
		find / -type f -iname "*$rep*.mp4" -o -iname "*$rep*.avi" -o -iname "*$rep*.mkv" | while read i
			#on ajoute les fichiers trouvés dans la page html
	do
		echo '<li><a href="'${i}'">'${i}'</a></li>' >> index.html
	done
fi


# fin de page
echo '</ul></body></html>' >> index.html

# recherche du repertoire courant
pwd
i=$(pwd)
# firefox ouvre la page
/home/ombre/firefox/firefox "${i}"/index.html

X-Voyager.14.04.4, 64b, hp dv6, 8Go ram, seen & unseen - site - ConkyLoungeRadio - ? - !

Hors ligne

#1752 Le 24/02/2015, à 04:07

barbican82

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,

en effet, le résultat est surprenant
on peut déjà remplacer le "exec  awk" par
find . -type f -iname "*.mp4" -o -iname "*.avi" -o -iname "*.mkv"  -printf "%b - %p\n"
par contre, on ne descends pas dans tous les sous-répertoires, bizarre

En ce qui concerne le find / ça n'a pas grand intérét de rechercher dans les fichiers systèmes et ça doit sérieusement ralentir le Schmilblick
il vaudrait mieux se limiter à /home et à /media et faire une boucle.

Hors ligne

#1753 Le 24/02/2015, à 10:15

enebre

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour

barbican82 a écrit :

se limiter à /home et à /media et faire une boucle

,
Je suis d'accord avec toi, voudrais-tu m'expliquer comment je dois rédiger cette commande, merci pour ton aide.


X-Voyager.14.04.4, 64b, hp dv6, 8Go ram, seen & unseen - site - ConkyLoungeRadio - ? - !

Hors ligne

#1754 Le 27/02/2015, à 15:19

Epehj

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut,

Pour connaître le fonctionnement d'une commande, tu as le man smile
Find est il me semble une commande récursive de base, donc pas besoin d'options pour lui dire de rechercher dans les sous dossiers.

find /home

va donc aller chercher dans /home ce que tu veux.

Du coup, il suffit d'adapter dans le script la commande find et ses paramètres wink


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#1755 Le 01/03/2015, à 17:04

barbican82

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

bonjour,

script modifié ci-dessous:
Dépendance zenity (installé par défaut sinon: apt-get install zenity)
Ajouts:
choix du répertoire à explorer
type de fichiers recherchés: films, musique, documents, ebook

#!/bin/sh -x
#script de recherche récursive de fichiers avec création d'une page web
#dependance : zenity

# on se place dans le home du user courantcd
ici=`pwd`
##On crée/vide le fichier
> $ici/index.html
# Selection du répertoire à explorer ($HOME par defaut)
chemin=$(zenity  --file-selection --title="Select Directory that contains JPEGS" --directory --filename=$HOME/)

#Selection du type de fichier à chercher
doc=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title="Saisie" --text="Faites votre choix" --entry-text="Films" Musiques Documents Ebook)

case $doc in
		1) 
			exit 
		;;
		
		Films)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du film ou laissez vide pour tous" )


		# recherche des fichiers videos, on se limite aux avi AVI, mp4 MP4 et mkv MKV
		if [$rep == ""] ;then 
				find  $chemin $file -type f -iname '*.mp4' -o -iname '*.avi' -o -iname '*.mkv' | while read i
			#on ajoute les fichiers trouvés dans la page html
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done

				else 
				find $chemin $file -type f -iname "*$rep*.mp4" -o -iname "*$rep*.avi" -o -iname "*$rep*.mkv" | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Musiques)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du titre recherché, laissez vide pour tous" )


		# recherche des fichiers sons on se limite aux mp3, flac, wav
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.mp3' -o -iname '*.flac' -o -iname '*.wav' | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else	 
					find $chemin  $file -type f -iname "*$rep*.mp3" -o -iname "*$rep*.flac" -o -iname "*$rep*.wav" | while read i
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Documents)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du document, laissez vide pour tous" )
			# recherche des fichiers  on se limite aux doc, xls, odt, ods
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.doc' -o -iname '*.odt' -o -iname '*.xls' -o -iname '*.ods' | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.doc" -o -iname "*$rep*.odt " -o -iname "*$rep*.xls"  -o -iname "*$rep*.ods"| while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
		Ebook)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du document, laissez vide pour tous" )
			# recherche des fichiers  on se limite aux epub, pdf 
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.epub' -o -iname '*.pdf'  | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.epub" -o -iname "*$rep*.pdf " | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
			esac
	#Génération de la page web # en-tête
		echo '<html>' >> $ici/index.html
		echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
	
echo '</ul></body></html>' >> $ici/index.html
# firefox ouvre la page
firefox $ici/index.html

Dernière modification par barbican82 (Le 24/03/2015, à 10:45)

Hors ligne

#1756 Hier à 13:07

barbican82

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,

en partant du script ci-dessus, voici un petit utilitaire qui permet de faire des recherches de fichiers, de contrôler l'espace disque, les programmes au démarrage, installation et désinstallation de programmes, mise à jour système et création de profil permettant de lancer des programmes automatiquement( au démarrage ou pas).

Rien de bien grandiose, surtout fait pour le fun et parce que je n'avais rien de mieux à faire.
Le code est certainement perfectible, n'hésitez pas à commenter.

#!/bin/bash
############################################
#Script utilitaire 
# auteur: jean-françois BAERT
#Licence Creativ Common BY - SA http://creativecommons.org/licenses/by-sa/2.0/fr/ ou GPL v3
#
#
#
#systemes testés: ubuntu et variantes
#dependance: zenity
#
############################################


#declaration des fonctions:


install()
{
#Installation d'un programme (comme son nom l'indique)
			prog=$(zenity --entry --title="Programme" --text="Quel programme voulez vous installer ?" --entry-text= "Programme")
			zenity --question --title="Question" --text="Vous allez installer $prog, merci de confirmer"
			zenity --password | sudo -S apt-get -y install $prog	
	main
}

update()
{
#Mise a jour du système
			zenity --password | sudo -S apt-get update && sudo apt-get update
	main
}

space()
{
#contrôle espace disques
	df -h | awk '{print $5 " utilise sur  " $6}' | grep % | grep -v Use| sort -n | zenity --text-info --title="Occupation des disques"
	main
}

profil_creation()
{
#creation d'un fichier peremttant de lancer des programmes en fonction d'un profil defini
ici=`pwd`
nom_profil=$(zenity --entry --title="Création du profil" --text="Entrez le nom du profil")
profil=$ici/$nom_profil".desk"
	if test -e $profil
		then
			zenity --warning --title="Erreur" --text="Ce profil existe déjà"
			question=$(zenity --entry --width=600 --title="Voulez vous modifier le profil existant?" --text= "Non" Oui)
			case $question in
				Non)
				exit 0
				;;
				Oui)
				rm $profil
				programmes=$(zenity --entry --width=600 --title="Programmes à lancer" --text="Entrez les programmes à lancer séparés par un espace")
					for i in $programmes
						do echo $i >> $profil
						done
						echo $programmes | zenity --text-info --width=400 --title="Ces programmes seront lancés" 
						
				chmod u+x $profil
				;;
			esac
		else
	programmes=$(zenity --entry --title="Programmes à lancer" --text="Entrez les programmes à lancer séparés par un espace")
		for i in $programmes
			do echo $i >> $profil
			done
			echo $programmes| zenity --text-info --width=400 --title="Ces programmes seront lancés"
			chmod u+x $profil
		
	fi 
	main
}
	
profil_login()
{
#Lancement des programmes precedemment definis dans le profil (fonction ci-dessus)	
ici=`pwd`
	ls -lrt  *desk |awk '{print $9}'| cut -d'.' -f1 > choix_profil
	var=`awk '{print $1}' choix_profil`
	execute=$(zenity --list --separator='\n' --title="Choix du profil à lancer" --column="Profil" $var)
	./$execute".desk"
	rm choix_profil
	main
}

charge_profil()
{
#création du fichier .desktop et copie vers /etc/xdg/autostart pour lancement automatique des programmes au demarrage de la machine
	ici=`pwd`
	ls -lrt  *desktop |awk '{print $9}'| cut -d'.' -f1 > choix_profil
	var1=`awk '{print $1}' choix_profil`
	prof=$(zenity --list --separator='\n' --title="Choix du profil à lancer" --column="Profil" $var1)
	fic=$ici/$prof".desktop"
	echo "[Desktop Entry]" > $fic 
	echo "Encoding=UTF-8" >> $fic
	echo "Name=$prof" >> $fic
	echo "Exec=$ici/$prof".desktop"" >>$fic
	echo "Terminal=false" >>$fic
	echo "Type=Application" >> $fic
	chmod 644 $fic
	zenity --password --title="Authentification" --text="Entrez votre mot de passe" | sudo -S cp $fic /etc/xdg/autostart/ && sudo chown root:root $fic

	main
	}

aide()
{
ici=`pwd`
	firefox $ici/aide.html
	main
}

recherche()
{
# Fonction de recherche de fichiers divers (choix) et affichage des resultat en page web
	
# on se place dans le home du user courant
cd
ici=`pwd`
##On cree/vide le fichier
> $ici/index.html
# Selection du repertoire a  explorer ($HOME par defaut)
chemin=$(zenity  --file-selection --title="Select Directory" --directory --filename=$HOME/)

#Selection du type de fichier a chercher
doc=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title="Saisie" --text="Faites votre choix" --entry-text="Films" Musiques Documents Ebook)

case $doc in
    	1) 
			exit 
		;;
		
		Films)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du film ou laissez vide pour tous" )

		set -x
		# recherche des fichiers videos, on se limite aux avi AVI, mp4 MP4 et mkv MKV
		if [$rep == ""] ;then 
				find  $chemin $file -type f -iname '*.mp4' -o -iname '*.avi' -o -iname '*.mkv' | while read i
			#on ajoute les fichiers trouves dans la page html
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.mp4" -o -iname "*$rep*.avi" -o -iname "*$rep*.mkv" | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Musiques)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du titre recherché, laissez vide pour tous" )


		# recherche des fichiers sons on se limite aux mp3, flac, wav
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.mp3' -o -iname '*.flac' -o -iname '*.wav' | while read i
				#on ajoute les fichiers trouves dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else	 
					find $chemin  $file -type f -iname "*$rep*.mp3" -o -iname "*$rep*.flac" -o -iname "*$rep*.wav" | while read i
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Documents)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du document, laissez vide pour tous" )
			# recherche des fichiers  on se limite aux doc, xls, odt, ods
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.doc' -o -iname '*.odt' -o -iname '*.xls' -o -iname '*.ods' | while read i
				#on ajoute les fichiers trouves dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.doc" -o -iname "*$rep*.odt " -o -iname "*$rep*.xls"  -o -iname "*$rep*.ods"| while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
		Ebook)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Entrez tout ou partie du nom du document, laissez vide pour tous" )
			# recherche des fichiers  on se limite aux epub, pdf 
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.epub' -o -iname '*.pdf'  | while read i
				#on ajoute les fichiers trouves dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.epub" -o -iname "*$rep*.pdf " | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
			esac
	#Generation de la page web # en-tete
		echo '<html>' >> $ici/index.html
		echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
	
echo '</ul></body></html>' >> $ici/index.html
# firefox ouvre la page
firefox $ici/index.html
}
list_start()
{
ls -lrt /etc/xdg/autostart/* | awk '{print $9}'| awk -F '/' '{print $5}'| cut -d'.' -f1 | zenity --text-info --title="Programmes lancés au démarrage"
}

#Interface pricipale
main()
{
rep=`pwd`
choix=$(zenity --entry --title="Bonjour" --text="Faites votre choix" --entry-text= Utilitaire Administration Aide)

case $choix in
    1)
		exit 0
	;;
	Utilitaire)
		utile=$(zenity --entry --title="Choix" --text="Faites votre choix" --entry-text= "Recherche" Espace_disque Programmes_au_demarrage)
			case $utile in
				1)
					exit 1
				;;
				Recherche)
					recherche
				;;
				Espace_disque)
					space
				;;	
				Programmes_au_demarrage)
					list_start
				;;
			esac
			;;
	Administration)	
		tache=$(zenity --entry --title="Choix"  --text="Que voulez vous faire?" --entry= "Update" Install_programm Creer_profil Lancer_profil Charger_profil)
			case $tache in
				1)
					exit 1
				;;
				Update)
					update 
				;;
				Install_programm)
					install		
				;;
				Creer_profil)
					profil_creation
				;;	
				Lancer_profil)
					profil_login
				;;
				Charger_profil)
					charge_profil
				;;
			esac	
			;;
		Aide)
			aide
		;;
esac
}

#lancement de la fonction "main", l'interface quoi!
main

Et la doc qui va avec:

[u]Aide:[/u]

Interface principale:
Fonction Utilitaire:

Recherche:

Permet d'effectuer une recherche de film, musique, documents, ebook, dans un dossier (home par défaut) à partir de tout ou partie du nom de fichier.

Une première fenêtre permet de choisir le type d'élément recherché.

La seconde permet de renseigner tout ou partie du nom de fichier. Si rien n'est indiqué, tous les éléments trouvés seront indiqués.

Une page web est générée et ouverte dans firefox. les fichiers sont indiqués par des liens permettant de les ouvrir depuis ou dans le navigateur.


Espace_disque:

Renvoie une fenêtre indiquant les taux d'occupations des différents systèmes de fichiers.


Programmes_au_demarrage:

Liste les applications lancées au démarrage.                                                                                          


Fonction Administration:

Update:

Permet de faire les mises à jour système (password requis)


Install_programm:

Permet d'installer un programme (nom du programme et password requis)


Creer_profil:

Permet de créer un "profil" utilisateur ou autre afin de lancer automatiquement des applications.


Lancer_profil:

Exécution des applications indiquées lors de la création du profil.


Charger_profil:

Les applications indiquées lors de la création du profil seront lancées au démarrage (user courant) (password requis).

Dernière modification par barbican82 (Hier à 13:07)

Hors ligne

Haut de page ↑