Contenu | Rechercher | Menus

Annonce

La nouvelle clé USB Ubuntu-fr est en prévente
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 21/12/2009, à 13:30

Globule

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Merci Sputnick pour ce script !

Moi j'ai repris exactement ton script et adapté celui de droopy dedans avec le port 8001, ce qui me permet d'envoyer et de recevoir facilement des fichiers en 2 clics !

changé :

python -m SimpleHTTPServer

par

python ~/droopy.py -m "Tu peux m'envoyer tes fichiers !" -p ~/debian-logo.png]

merci encore !

Hors ligne

#27 Le 21/12/2009, à 16:44

soupaloignon

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Terrible ce script big_smile, quelle bonne idée. Je le teste dans la soirée.

Sinon, juste à chaud comme ça (n'ayant pas encore testé). Cela ne serait pas bien que le script génère à la volée le fichier index.htm, avec le contenu du dossier, et le place direct dans le dossier à partager ? (et le supprime à l'extinction du script ?)

Dernière modification par soupaloignon (Le 21/12/2009, à 16:45)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#28 Le 21/12/2009, à 17:04

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

@smecher désolé j'avais pas vu ton échange.

rajouter une fenetre zenity
zenity --file-selection

à voir ce soir @home.

@n3o51 selector.pl.bash est là : http://www.sputnick-area.net/?p=33 mais il doit etre mis à jour pour fonctionner correctement, il me semble que les sites ont changés. Peux etre smecher pourra confirmer/infirmer ?!

@soupaloignon: pourquoi creer un index.html ? quel est le but puisque tu peux voir le contenu des dossiers ?

Hors ligne

#29 Le 21/12/2009, à 17:22

soupaloignon

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

sputnick a écrit :

@soupaloignon: pourquoi creer un index.html ? quel est le but puisque tu peux voir le contenu des dossiers ?

Désolé dans ce cas, j'avais cru comprendre, à la lecture du fil, qu'il y avait un "index.htm" à créer et à mettre dans le dossier à partager


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#30 Le 21/12/2009, à 17:34

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Tu peux en mettre un si ca te chante pour cacher les fichiers et donner acces seulement à ce que tu aura choisi...

Hors ligne

#31 Le 21/12/2009, à 21:38

n3o51

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Bonsoir oui j'avais posais la question pour l'index ce n'est pas obligatoire.
Sinon merci pour le lien sputnick cool


Welcome to the real world
________________________________

Hors ligne

#32 Le 21/12/2009, à 22:22

smecher

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Bonsoir tout le Monde

wow, a ce que je vois.... ce script plait a beaucoup  big_smile

il est pas baleze ce Sputnick big_smile
il a meme des fans  sur le net wink
j'ai vu ca ce matin:
http://nicotux.wordpress.com/2009/12/20/creer-un-serveur-web-en-2-clics-partagez-enfin-de-gros-documents-facilement/

Plus serieusement
pour:
selector.pl.bash
effectivement , il y a eut du changement, donc toutes les radios ne marchent pas.
je suis incapable de vous dire lesquels, ce que j'ai plus cherché a voir c'est le script lui meme , mais pour tous les amateurs de ce genre de musique, je vous conseille de faire un tour sur Oemradio
http://www.oemradio.org/

couplé a streamripper ( dans les depots)
http://streamripper.sourceforge.net/
...bref...
big_smile
@soupaloignon
et en ce qui concerne, l'index.html
il n'est pas du tout necessaire, mais si vraiment tu veux lister ton repertoire tout en ayant une "mise" en page  avec css /texteS/images etc...
il y a toujours la balise html
<IFRAME> ... </IFRAME>

et @ Sputnick
Le guide du script bash avancé que tu m'avais conseillé (ABS )
je me suis apercu qu'il est dans les depots, certe en anglais ( sous hardy) mais j'ai trouvé l'idée amusante.

et puis dernier petits trucs sympa, que certain connaisse d'autres non..mais qui nous facilite tellement la vie quand on les connais, je veux vous parler des:
Commandes de contrôle dans un terminal

http://www-iness.c-strasbourg.fr/tech/inform/linux-user/node5.html#SECTION00510000000000000000

et pour le fun..une vielle applis de notre bon vieux X11
il s'agit de xclock
tout seul il est pas super...
mais...

xclock -bg black -fg green -update 1 -digital -geometry  300x40-0+0 &

wink


http://smecher.ecchi.ca/

Hors ligne

#33 Le 24/12/2009, à 00:29

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

@smecher,

pour le zenity et la selection, je n'en voit pas l'interet.

Concernant selector.pl.bash c'est pas vraiment pour des radios mais des disquaires pour DJs drum"n"bass onlines.

Il faudrait que je fasse la même chose pour des sites d'achat de skeuds comme www.beatport.com mais c'est pas gagné, tout est en flash.

Hors ligne

#34 Le 24/12/2009, à 09:58

smecher

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Salut Sputnick

Pour Zenity, effectivement il n'y a pas grand interet ( c'etait juste le petit truc en plus)....a vouloir trops(tout) simplifier..on en arrive a meme plus savoir se servir du terminal...
Et c'est pas le but ici....donc pour deplacer le script dans le dossier de son choix...un petit CP et ca roule
big_smile
Merci encore

Et pour la musique, j'avais pas du tout calculé que ce n'etait pas des radios en fait big_smile

ca me  rappelle un autre de tes scripts ca.... wink
Deezzer &co big_smile
j'aime bien ce genre de scripts , grace a ca on voit toute la Grandeur des scripts, on peut quasiment tout faire.

et pour Beatport encre une bonne adresse big_smile

Merci bonne continuation a toi

et, si vraiment t'es manques d'idées pour tes scripts...j'en ai perso.... des centaines big_smile
@ + bonne continuation
et tiens nous au courant


___________plus serieueseemnt_____________________
Petit question d'ordre general

je voudrais savoir si avec un script bash c'est possible, repond moi juste oui ou non.


je voudrais savoir, si on peut ecrire  ce que l'on veut directement dans une page html dans un dossier local.

ex:
j'ai un dossier avec 10 page html ,
1 index.html + 9 classique ( 1.html; 2.html;3.html...etc...)

peut on grace a un script.
lister tous les noms des pages Html ( or index.html)
et les ecrires automatiquement dans le fichier index.html dans une balises <ul> et les rendres cliquables.

( creer une liste /un sommaire de toutes les autres pages html)




l'idée  c'est de creer facilement un manuel d'utilisation, et a chaque fois que l'on creé une nouvelle page, elle s'inscrive directement dans le sommaire..

et que dans chaque nouvelle page il puisse y avoir le lien sur la page precedente (avec son nom) et sur la page suivante.

certe il existe des cms etc....
mais ce n'est pas forcement le but de les mettres en lignes..et de plus bien souvant..il ne garde pas l'extension Html  et ... or php sur la machine..c'est impossible a lire.


Donc ma question peut , parraitre naive, a savoir si c'est faisable ou non. big_smile

Merci encore et bonne journée a toi

smile


http://smecher.ecchi.ca/

Hors ligne

#35 Le 25/12/2009, à 12:29

smecher

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

@Sputnick

Encore un fan de ton Script wink
http://ubuntu-pour-tous.sfhost.net/?p=250

Decidement, il plait a beaucoup de gens big_smile

bye


http://smecher.ecchi.ca/

Hors ligne

#36 Le 01/01/2010, à 21:47

UUBBUU_USER

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

très bon travail ....
histoire de mettre une pierre a l'édifice  :http://forum.ubuntu-fr.org/viewtopic.ph … 8#p3178448

ps : je suis loin d'avoir fini )


PEACE LOVE UNITY                                                      FREE TIBET

Hors ligne

#37 Le 03/01/2010, à 11:37

smecher

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

@UUBBUU_USER

Effectivement, cette technique de serveur rapide est vraiment sympathique.
Si je comprend bien, ton script, propose de faire la meme chose, directement en Python...
donc compatible directement avec windows(si python installé) ?

si c'est ca.. ca serait chouette, parceque grace a cette technique..plus besoin de doit et autres ( comme pour samba).

Bonne continuation a toi.

@Sptunick le Grand

Voila, je trouve ton script vraiment tres bien, et effectivement je m'en sert souvant.

J''ai une idée de nouvelle version, qui le rendrais encore plus puissant et plus complet.

..laissant tourné le serveur   toute une journée.
et ne voulant pas encombré un de mes bureaux , j'ai decidé de le lancer dans un tty....
Mais le fait d'avoir du gtk zenity... me sort une erreur ( c'est tout a fait normal).

Donc m'est venu l'idée de l'amelioration suivante.
( pour toutes les personnes comme moi, decidé a le lancer dans un tty.

serait 'il facile, de rajouter une option a ce script lui permettant ainsi de ne plus avoir de fenetre gtk, mais en gardant tout de meme le grand avantage que t'as rajouté,  a savoir d'afficher l'ip interne et externe.
un truc du style:

sputnickserveur -t

ou l'option t permet de le lancer dans le terminal
et de voir:

--------------------------------------
votre adresse ip externe est: xxxxx:8000
votre adresse ip interne est: xxxxx:8000
voulez vous vraiment lancer le lanceur? y/n
--------------------------------------

etc... et..pour la suite, le meme concept qu'avec zenity.

et une autre option qui serait egalement tres utile, serait d'avoir un Log ( c'est quand meme un serveur web, c'est sympa de savoir qui vas ou, qui download quoi etc.... )

d"origine" lorsqu'on lance juste de cette facon le serveur avec nohup
nohup python -m SimpleHTTPServer

ca permet d'avoir le log dans  le dossier ou est lancé le script

donc dans l'idée peut etre qu'ajouter une option, marchant aussi bien, pour le script graphique ou tty
du style

sputnickserveur -L /chemin/ou/on/veut/avoir/le/log

serait sympa non? big_smile

Donc voila encore une nouvelle idée qui peut etre tres utile pour un grand nombre d'entre nous big_smile
et qui permettrais d'ammenner ton script au niveau superieur

qu'en pense tu? interressant?

Si tu passes par la, wink
Merci deja pour la premiere version  et bonne continuation.
@+


http://smecher.ecchi.ca/

Hors ligne

#38 Le 04/01/2010, à 02:00

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Pour lancer en commande et recuperer dans un fichier de log, exemple :

screen -S SimpleHTTPServer
( python -m SimpleHTTPServer ) 2>&1 | tee /tmp/SimpleHTTPServer.log

Hors ligne

#39 Le 15/03/2010, à 15:07

mermouy

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Salut à tous!

Merci encore pour ce script!

Je poste ma version ci-aprés j'y ai ajouté des boîtes de dialogue zenity pour sélectionner l'interface et le port... Ainsi qu'une boite de dialogue rappellant l'adresse du serveur ainsi créé pour en faciliter l'échange.

J'ai nommé ce script /usr/local/bin/HttpGui.sh et créé une action personnalisée dans Thunar avec le lanceur:

HttpGui.sh %f

Voilà où en est le script:

#!/bin/bash

#
# ------------------------------------------------------------------
#    made by sputnick in da FreAkY lApPy lAb (c) 2009
#    gilles.quenot <AT> gmail <DOT> com
#	 Idea from smecher.
#
#	Remodifié/adapté pour Debian Sid ZinuD par MerMouY
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#       (see http://www.gnu.org/licenses/gpl.html).
# ------------------------------------------------------------------
#   ,,_
#  o"  )@
#   ''''
# ------------------------------------------------------------------
#
# vim:ts=4:sw=4
#
#
# Version 0.2
#
# 
# Script permettant de lancer un serveur web en dialog zenity a la volee dans le dossier courant.
# Il affiche les IP:PORT interne et externes qui seront disponibles.
# ( Si vous etes derriere un routeur, il faut le configurer pour que le port choisi
# soit redirigée vers votre adresse IP locale.
#
#  Questions et infos : http://forum.ubuntu-fr.org/viewtopic.php?id=364489
# 
#  Prerequis:
#    zenity
# 
# 

DIR=$1

iface=$(zenity --entry --title="Choix de l'interface" --text="Entrez l'interface réseau à utiliser pour votre partage:" --entry-text="eth0")
case $? in
  0)
    echo "L'interface \"$iface\" sélectionnée.";;
  1)
    zenity --info --title="Abandon" --text="Aucune interface sélectionnée. Annulation..."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

if [ -z $iface ]
then 
zenity --info --title="Abandon" --text="Aucune interface sélectionnée. Annulation..."
exit 0
fi

PORT=$(zenity --entry --title="Port du serveur" --text="Entrez le port à écouter pour votre partage:" --entry-text="8000")
case $? in
  0)
    echo "Port \"$PORT\" sélectionné.";;
  1)
    zenity --info --title="Sélection auto" --text="Aucun port sélectionné. Annulation..."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite. Avez vous choisi un port?"; exit 0;;
esac

if [ -z $PORT ]
then 
zenity --info --title="Abandon" --text="Aucun port sélectionné. Annulation..."
exit 0
fi

if nc -z -w2 localhost $PORT; then
    zenity --error --title="Erreur\!" --text="Le port $PORT est déjà pris par un autre processus.\n\nChoisissez un autre port d\'écoute..."
    exec $0
fi

zenity --question --title="Voulez vous risquer d'exposer ce dossier sur la toile?" --text="Le contenu du dossier \"$DIR\" sera accessible depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):$PORT

|==>Communiquez cette adresse à vos correspondants internet.


Adresse Privée:\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT

|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?" || exit 0

python -m SimpleHTTPServer $PORT & pro=$!

while true; do
    zenity --notification  --text="Cliquez ici pour arrêter le serveur"

    if zenity --question --title="Confirmation" --text="Sûr on arrête le serveur?\n\nÇa va couper chérie\!"; then
        kill $pro
        exit $?
    fi
done

Ensuite j'ai aussi créé une variante avec droopy pour intégrer l'upload le procédé est le même, l'action Thunar:

drooper.sh %f

Et voici le /usr/local/bin/drooper.sh :

#!/bin/bash

#
# ------------------------------------------------------------------
#    made by sputnick in da FreAkY lApPy lAb (c) 2009
#    gilles.quenot <AT> gmail <DOT> com
#	 Idea from smecher.
#
#	Remodifié/adapté pour Debian Sid ZinuD par MerMouY
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#       (see http://www.gnu.org/licenses/gpl.html).
# ------------------------------------------------------------------
#   ,,_
#  o"  )@
#   ''''
# ------------------------------------------------------------------
#
# vim:ts=4:sw=4
#
#
# Version 0.2
#
# 
# Script permettant de lancer un serveur droopy en dialog zenity a la volee dans le dossier courant. Pour créer un espace d'upload sur sa machine.
#
#  Questions et infos : http://forum.ubuntu-fr.org/viewtopic.php?id=364489
# 
#  Prerequis:
#    zenity
# 
# 
DIR=$1
iface=$(zenity --entry --title="Choix de l'interface" --text="Entrez l'interface réseau à utiliser pour votre partage:" --entry-text="eth0")
case $? in
  0)
    echo "L'interface \"$iface\" sélectionnée.";;
  1)
    echo "Aucune interface sélectionnée."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

PORT=$(zenity --entry --title="Port du serveur" --text="Entrez le port à écouter pour votre partage:" --entry-text="8000")
case $PORT in
  0)
    echo "Port \"$PORT\" sélectionné.";;
  1)
    echo "Aucun port sélectionné, port 8000 utilisé"; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac


if nc -z -w2 localhost $PORT; then
    zenity --error --title="Erreur\!" --text="Le port $PORT est déjà pris par un autre processus.\n\nChoisissez un autre port d\'écoute..."
    exec $0
fi

zenity --question --title="Voulez vous ouvrir ce dossier sur la toile pour y recevoir des fichiers?" --text="Le dossier \"$DIR\" sera réceptacle des fichiers envoyés depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 |cut -d\< -f 1):$PORT

|==>Communiquez cette adresse à vos correspondants internet.


Adresse Privée:\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT

|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?" || exit 0

python /usr/local/bin/droopy.py $PORT & pro=$!

while true; do
    zenity --notification  --text="Cliquez ici pour arrêter le serveur d'upload"

    if zenity --question --title="Confirmation" --text="Sûr? on arrête ce service?\n\nÇa va couper chérie\!"; then
        kill $pro
        exit $?
    fi
done

Biensûr il vous faut encore télécharger droopy et le copier dans /usr/local/bin/droopy.py

J'aimerais beaucoup intégrer ces scripts dans la prochaine version de ZinuD personne n'a d'objection?
N'hésitez pas à critiquer/proposer etc ... Tous les retours sont bons à prendre!

Ciao bonne continuation!

Dernière modification par mermouy (Le 17/03/2010, à 05:15)

Hors ligne

#40 Le 18/03/2010, à 12:37

ElGatoNegro

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Salut,

mermouy a écrit :

(dans le droopy.sh, ligne 75)

python /usr/local/bin/droopy.py $PORT & pro=$!

tu as dû oublier le "-d $DIR":

python /usr/local/bin/droopy.py -d $DIR $PORT & pro=$!

(ce qui est plus sympa...)


"Écart est le palindrome de Tracé" (Alain Damasio)

Hors ligne

#41 Le 18/03/2010, à 15:51

mermouy

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Ouups oui effectivement! Merci de l'avoir repéré, j'imagine que j'ai dû foirer un moment dans mes copier-coller entre deux versions (je découvre les joies du versionning smile) et poster une version plus ancienne... Je continue à travailler sur ce script.
Voilà où j'en suis pour les curieux ou interressés... (il comprend quelques améliorations comme le multi-threading et fichier de log, pour utiliser le multi-thread j"utilise le script webserver.py dispo sur le site de stackp et que je remet ici en bas) Tous les fichiers sont à coller dans votre PATH (par exemple /usr/local/bin pour tous les utilisateurs ou ~/bin/ pour vous seul)

HttpGui.sh:

DIR=$1

# User entry verification (not empty or ask again)

while [ -z $DIR ] || [ ! -d $DIR ]
do
DIR=$(zenity --entry --title="Choix du dossier" --text="Veuillez indiquer un dossier à partager:" --entry-text=`pwd` || exit 0)
done

# Interface to listen on

iface=$(zenity --entry --title="Choix de l'interface" --text="Entrez l'interface réseau à utiliser pour votre partage:" --entry-text="eth0")
case $? in
  0)
    echo "L'interface \"$iface\" sélectionnée.";;
  1)
    echo "Aucune interface sélectionnée."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Port to listen on

PORT=$(zenity --entry --title="Port du serveur" --text="Entrez le port à écouter pour votre partage:" --entry-text="8000")
case $PORT in
  0)
    echo "Port \"$PORT\" sélectionné.";;
  1)
    echo "Aucun port sélectionné, port 8000 utilisé"; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Is port already in use?

servpid=$(lsof -t -i :$PORT)

if [ ! -z $servpid ]; then
    zenity --error --title="Erreur\!" --text="Le port $PORT est déjà pris par un autre processus.\n\nChoisissez un autre port d\'écoute..."
    exec $0
fi

# Last confirmation and summary

zenity --question --title="Voulez vous risquer d'exposer ce dossier sur la toile?" --text="Le contenu du dossier \"$DIR\" sera accessible depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):$PORT

|==>Communiquez cette adresse à vos correspondants internet.


Adresse Privée:\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT

|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?" || exit 0

# Does log file already exist if so rename it

DATE=$(sed -n '1p' $DIR/.simplewebserver.log | cut -d '[' -f2 | cut -d ']' -f1 | sed -e "s/\//./g" | sed -e "s/:/./g" | sed -e "s/ /./g")
cd $DIR
if [ -f .simplewebserver.log ]
then
mv .simplewebserver.log .simplewebserver.$DATE.log
zenity --info --text="Un ancien fichier de log à été trouvé\!\n\nRenommé en $DIR/.simplewebserver.$DATE.log"
fi

# Let's start the server & create the logfile

python webserver.py $PORT 2>&1 | tee $DIR/.simplewebserver.log &

# Create notification area to stop the server

while true; do
    zenity --notification  --text="Cliquez ici pour arrêter le serveur"

    if zenity --question --title="Confirmation" --text="Sûr?\n\nÇa va trancher chérie\!"; then
        while [ ! -z `lsof -t -i :$PORT` ]
	do
        	kill `lsof -t -i :$PORT`
	done
        exit $?
    fi
done

et drooper.sh:

#!/bin/bash
#
# ------------------------------------------------------------------
#	     Pour Debian ZinuD par MerMouY
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#       (see http://www.gnu.org/licenses/gpl.html).
# ------------------------------------------------------------------
#
#  Questions et infos : http://zinud.youm.org/forums.html
# 
#  Depends:
#    zenity
#    droopy.py
# 

DIR=$1

# User entry verification (not empty or ask again)

while [ -z $DIR ] || [ ! -d $DIR ]
do
DIR=$(zenity --entry --title="Choix du dossier" --text="Veuillez indiquer un dossier récipient:" --entry-text=`pwd` || exit 0)
done

# User entry verification (for being a writable dir or exit)

if [ ! d $DIR ] || [ ! -w $DIR ]
then
zenity --error --title="Erreur!" --text="Vous devez avoir le droit d'écrire dans ce dossier\!\n\nAbandon..."
exit 0
fi

# Interface to listen on

iface=$(zenity --entry --title="Choix de l'interface" --text="Entrez l'interface réseau à utiliser pour votre partage:" --entry-text="eth0")
case $? in
  0)
    echo "L'interface \"$iface\" sélectionnée.";;
  1)
    echo "Aucune interface sélectionnée."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Port to listen on

PORT=$(zenity --entry --title="Port du serveur" --text="Entrez le port à écouter pour votre partage:" --entry-text="8000")
case $PORT in
  0)
    echo "Port \"$PORT\" sélectionné.";;
  1)
    echo "Aucun port sélectionné, port 8000 utilisé"; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Is port already in use?

servpid=$(lsof -t -i :$PORT)
if [ ! -z $servpid ]; then
    zenity --error --title="Erreur\!" --text="Le port $PORT est déjà pris par un autre processus.\n\nChoisissez un autre port d\'écoute..."
    exec $0
fi

# Personnal message to display (optional)

Mesg=$(zenity --entry --title="Entrez un mot sympa..." --text="Entrez un message à afficher à vos visiteurs:" --entry-text='Prêt à recevoir vos fichiers, même pas peur')

# Last confirmation and summary

zenity --question --title="Voulez vous ouvrir ce dossier sur la toile pour y recevoir des fichiers?" --text="Le dossier \"$DIR\" sera réceptacle des fichiers envoyés depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):$PORT

|==>Communiquez cette adresse à vos correspondants internet.


Adresse Privée:\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT

|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?" || exit 0

# Does log file already exist if so rename it

DATE=$(sed -n '1p' .drooper.log | cut -d '[' -f2 | cut -d ']' -f1 | sed -e "s/\//./g" | sed -e "s/:/./g" | sed -e "s/ /./g")
if [ -f $DIR/.drooper.log ]
then
mv .drooper.log .drooper.$DATE.log
zenity --info --text="Un ancien fichier de log à été trouvé\!\n\nRenommé en $DIR/.drooper.$DATE.log"
fi

# Let's start the server & create the logfile

python droopy.py -m "$Mesg" -d $DIR $PORT 2>&1 | tee $DIR/.drooper.log &

# Create notification area to stop the server

while true; do
    zenity --notification  --text="Cliquez ici pour arrêter le serveur d'upload"

    if zenity --question --title="Confirmation" --text="Sûr on arrête?\n\nÇa va couper bébé\!"; then
	while [ ! -z `lsof -t -i :$PORT` ]
	do
        	kill `lsof -t -i :$PORT`
	done
        exit $?
    fi
done

webserver.py:

#!/bin/bash
#
# ------------------------------------------------------------------
#	     Pour Debian ZinuD par MerMouY
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#       (see http://www.gnu.org/licenses/gpl.html).
# ------------------------------------------------------------------
#
#  Questions et infos : http://zinud.youm.org/forums.html
# 
#  Depends:
#    zenity
#    droopy.py
# 

DIR=$1

# User entry verification (not empty or ask again)

while [ -z $DIR ] || [ ! -d $DIR ]
do
DIR=$(zenity --entry --title="Choix du dossier" --text="Veuillez indiquer un dossier récipient:" --entry-text=`pwd` || exit 0)
done

# User entry verification (for being a writable dir or exit)

if [ ! d $DIR ] || [ ! -w $DIR ]
then
zenity --error --title="Erreur!" --text="Vous devez avoir le droit d'écrire dans ce dossier\!\n\nAbandon..."
exit 0
fi

# Interface to listen on

iface=$(zenity --entry --title="Choix de l'interface" --text="Entrez l'interface réseau à utiliser pour votre partage:" --entry-text="eth0")
case $? in
  0)
    echo "L'interface \"$iface\" sélectionnée.";;
  1)
    echo "Aucune interface sélectionnée."; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Port to listen on

PORT=$(zenity --entry --title="Port du serveur" --text="Entrez le port à écouter pour votre partage:" --entry-text="8000")
case $PORT in
  0)
    echo "Port \"$PORT\" sélectionné.";;
  1)
    echo "Aucun port sélectionné, port 8000 utilisé"; exit 0;;
  -1)
    echo "Une erreur inattendue s'est produite."; exit 0;;
esac

# Is port already in use?

servpid=$(lsof -t -i :$PORT)
if [ ! -z $servpid ]; then
    zenity --error --title="Erreur\!" --text="Le port $PORT est déjà pris par un autre processus.\n\nChoisissez un autre port d\'écoute..."
    exec $0
fi

# Personnal message to display (optional)

Mesg=$(zenity --entry --title="Entrez un mot sympa..." --text="Entrez un message à afficher à vos visiteurs:" --entry-text='Prêt à recevoir vos fichiers, même pas peur')

# Last confirmation and summary

zenity --question --title="Voulez vous ouvrir ce dossier sur la toile pour y recevoir des fichiers?" --text="Le dossier \"$DIR\" sera réceptacle des fichiers envoyés depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):$PORT

|==>Communiquez cette adresse à vos correspondants internet.


Adresse Privée:\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT

|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?" || exit 0

# Does log file already exist if so rename it

DATE=$(sed -n '1p' .drooper.log | cut -d '[' -f2 | cut -d ']' -f1 | sed -e "s/\//./g" | sed -e "s/:/./g" | sed -e "s/ /./g")
if [ -f $DIR/.drooper.log ]
then
mv .drooper.log .drooper.$DATE.log
zenity --info --text="Un ancien fichier de log à été trouvé\!\n\nRenommé en $DIR/.drooper.$DATE.log"
fi

# Let's start the server & create the logfile

python droopy.py -m "$Mesg" -d $DIR $PORT 2>&1 | tee $DIR/.drooper.log &

# Create notification area to stop the server

while true; do
    zenity --notification  --text="Cliquez ici pour arrêter le serveur d'upload"

    if zenity --question --title="Confirmation" --text="Sûr on arrête?\n\nÇa va couper bébé\!"; then
	while [ ! -z `lsof -t -i :$PORT` ]
	do
        	kill `lsof -t -i :$PORT`
	done
        exit $?
    fi
done

Ça avance ça avance...

Hors ligne

#42 Le 18/03/2010, à 21:48

joko

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

bonsoir,
je suis un peu nunuche et je voudrais savoir s'il n'est pas possible d'avoir un script qui unifie le download et l'upload. mais déjà le script de spuynick est bien cool.
le test upload est ok
mais ça fait deux scripts à lancer

siouplé ça serait coool de n'en faire qu'un.
respect aux programmeurs


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#43 Le 01/04/2010, à 19:17

soupaloignon

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Bon, j'avais un peu oublié ce script...

Et là je viens de retomber dessus. Et hop, un test dans la foulée. Et c'est vraiment une tuerie, BRAVO !!!


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#44 Le 03/04/2010, à 08:39

soupaloignon

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

> sputnick

Tu pourrais laisser ici le code php de ce fichier ?
http://sputnick-area.net/ip

Merci d'avance smile


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#45 Le 03/04/2010, à 21:37

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

<?php
echo $_SERVER['REMOTE_ADDR']
?>

Hors ligne

#46 Le 04/04/2010, à 08:38

soupaloignon

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Merci smile


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#47 Le 04/04/2010, à 20:33

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

mermouy, si tu ecrit GPL dans tes sources, il faut respecterla license ; citer l'auteur et le nom du script original dans le tiens. http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU

Hors ligne

#48 Le 22/08/2010, à 22:22

ewfzapp

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

Salut a tous, le script fonctionne nickel en local, mais pas sur la grande toile!
J'ai pourtant redirigé les port dans ma freebox (tcp et udp), mais impossible de m'y connecter de l'exterieur...


www.indigenecreations.fr

Hors ligne

#49 Le 22/08/2010, à 23:51

sputnick

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

donne le resultat d'un

netstat -nptl

Hors ligne

#50 Le 23/08/2010, à 23:53

ewfzapp

Re : [resolu]script bash +zenity: SimpleHTTPServer en - de 10 secondes

netstat -nptl
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:37933         0.0.0.0:*               LISTEN      2504/beam.smp   
tcp        0      0 127.0.0.1:58638         0.0.0.0:*               LISTEN      2583/ssl_esock  
tcp        0      0 0.0.0.0:50799           0.0.0.0:*               LISTEN      2264/skype      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      1937/dropbox    
tcp6       0      0 :::80                   :::*                    LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -               
tcp6       0      0 ::1:631                 :::*                    LISTEN      -               
tcp6       0      0 127.0.1.1:54977         :::*                    LISTEN      2743/java       
tcp6       0      0 127.0.0.1:9666          :::*                    LISTEN      2743/java

et avec le serveur python lancé:

netstat -nptl
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:37933         0.0.0.0:*               LISTEN      2504/beam.smp   
tcp        0      0 127.0.0.1:58638         0.0.0.0:*               LISTEN      2583/ssl_esock  
tcp        0      0 0.0.0.0:50799           0.0.0.0:*               LISTEN      2264/skype      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      1937/dropbox    
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      3407/python     
tcp6       0      0 :::80                   :::*                    LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -               
tcp6       0      0 ::1:631                 :::*                    LISTEN      -               
tcp6       0      0 127.0.1.1:54977         :::*                    LISTEN      2743/java       
tcp6       0      0 127.0.0.1:9666          :::*                    LISTEN      2743/java

Dernière modification par ewfzapp (Le 23/08/2010, à 23:55)


www.indigenecreations.fr

Hors ligne