Contenu | Rechercher | Menus

Annonce

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.

#76 Le 17/04/2008, à 16:41

Mathieu11

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

Désactivation du touchpad lors d'un branchement de souris

ICI

Le crédit va à l'auteur du blog (un Cyril apparement wink )

Dernière modification par Mathieu11 (Le 17/04/2008, à 16:44)


Vostro 1400

Hors ligne

#77 Le 17/04/2008, à 18:38

kuri

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

vu qu il y a un script pour encoder ses videos PSP ... voici pour la DS :

Reference : http://forum.gbadev.org/viewtopic.php?t=7897
Fonctionne Pour Moonshell 1.5 (et surement +)
Logiciels Necessaires : mencoder, mplayer, mpeg_stat, python

#! /usr/bin/python
# DPG Converter by Anton Romanov (c) 2006
# released under GPL-2
# 
"""A script to transcode video files to DPG format suitable for
   Nintendo DS (tm)
   
dpgconv.py /home/foo/blah.avi /home/foo/blah2.avi
command line options:
	--dpg
		0,1,2 sets DPG version.. default is DPG2
	
	--pf
		sets pixel format, default is 3
		0        RGB15
		1        RGB18
		2        RGB21
		3        RGB24 

	-q,--hq
		high quality video
	-l,--lq
		low quality video(takes no effect when --hq,-q is set)]
	default is normal quality
	
	-v,--vbps xxx
		sets video stream bps in kb/s(default: 256)
	-a,--abps xxx
		sets audio stream bps kb/s (default: 128)
	-f,--fps xx
		sets video frames per second (default:15)
	-z,--hz
		sets audio frequency (default:32000)
	-c,--channels
		2 - stereo, 1 - mono
		default is to leave as is unless input audio channels
		number is bigger then 2 ... then default is stereo
	--height xxx
		destination video height
	--width xxx
		destination video width

	--mv
		additional parameters for mencoder for video

	--ma
		additional parameters for mencoder for audio
	
	Hardcoding subtitles
	--nosub
		do no try autoloading of subtitles
		(default is to try to load subtitle with matching filename)
	--sub,-s xxx
		Specify subtitles for hardcoding into video output
		(is obviously only usable if you specify one file at a time)
	--subcp xxx
		specify subtitles encoding
	--font xxx
		specify font for subtitles
  EXAMPLE:
    --font ~/arial-14/font.desc
    --font ~/arialuni.ttf
    --font 'Bitstream Vera Sans'

  You can specify font, subcp and other additional mencoder parameters in
	~/.mplayer/mencoder.conf
  EXAMPLE:
	font=/usr/local/share/fonts/msfonts/comic.ttf
	subcp=cp1251

"""
import sys, os, optparse
MP2TMP="mp2tmp.mp2"
MPGTMP="mpgtmp.mpg"
HEADERTMP="header.tmp"
GOPTMP="gop.tmp"
STATTMP="stat.tmp"

MENCODER="mencoder"
MPLAYER="mplayer"
MPEG_STAT="mpeg_stat"




#Print a help message if requested.
if "-h" in sys.argv or "-help" in sys.argv or "--help" in sys.argv:
	print __doc__
	raise SystemExit

def cleanup_callback(a,b):
	print "Removing temporary files"
	if os.path.lexists ( MPGTMP ):
		os.unlink ( MPGTMP )
	if os.path.lexists ( MP2TMP ):
		os.unlink ( MP2TMP )
	if os.path.lexists ( HEADERTMP ):
		os.unlink ( HEADERTMP )
	if os.path.lexists ( GOPTMP ):
		os.unlink ( GOPTMP )
	if os.path.lexists ( STATTMP ):
		os.unlink ( STATTMP )

def conv_vid(file):
	if options.dpg == 0:
		v_pf = "format=rgb24,"
		options.pf = 3
	elif options.pf == 3:
		v_pf = "format=rgb24,"
	elif options.pf == 2:
		v_pf = "format=rgb21,"
	elif options.pf == 1:
		v_pf = "format=rgb18,"
	elif options.pf == 0:
		v_pf = "format=rgb15,"
	else:
		v_pf = "format=rgb24,"
		options.pf = 3

	if options.hq:
		v_cmd =  ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` +":::3 -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=6:subcmp=6:precmp=6:dia=3:predia=3:last_pred=3:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
	elif options.lq:
		v_cmd = ( " \"" + file + "\" -v -ofps " + `options.fps` + " -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + " -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
	else :
		v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + ":::3 -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=2:subcmp=2:precmp=2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo")
	
	if options.nosub:
		if options.sub != None:
			v_cmd = " -sub \"" + options.sub + "\" " + v_cmd
	else:
		basename = os.path.splitext ( file )[0]
		if options.sub != None:
			v_cmd = " -sub \"" + options.sub + "\" " + v_cmd
		elif os.path.exists ( basename + ".ass" ):
			v_cmd = " -sub \"" + basename + ".ass" + "\" " + v_cmd
		elif os.path.exists ( basename + ".srt" ):
			v_cmd = " -sub \"" + basename + ".srt" + "\" " + v_cmd
		elif os.path.exists ( basename + ".sub" ):
			v_cmd = " -sub \"" + basename + ".sub" + "\" " + v_cmd
		elif os.path.exists ( basename + ".ssa" ):
			v_cmd = " -sub \"" + basename + ".ssa" + "\" " + v_cmd
	
	if options.subcp != None:
		v_cmd = " -subcp " + options.subcp + v_cmd
	if options.font != None:
		v_cmd = " -font \"" + options.font + "\"" + v_cmd

	v_cmd = MENCODER + " " + v_cmd
	proc = subprocess.Popen(v_cmd,shell=True,stdout=subprocess.PIPE,universal_newlines=True,stderr=open('/dev/null', 'w'))
	
#	v_out = ""
	
	p = re.compile ("f (\(.*%\))")
#	f = re.compile ("([0-9]*)\/([0-9]*)\/([0-9]*)")
	for line in proc.stdout:
#		v_out = v_out + line
		m = p.search( line )
		
		if m:
			print "Transcoding video: " + m.group(1) + "\r" ,
#		m = f.search(line)
#		if m:
#			duplicate_frame = int (m.group (1))
#			bad_frames = int (m.group(2))
#			skipped_frames = int (m.group(3))


	print "Transcoding video:   done"
#	p = re.compile ("secs  ([0-9]*)( frames)")
#	m = p.search( v_out )
#	origframes = int(m.group(1))
	
#	frames = origframes - bad_frames + duplicate_frame
	
#	print "Original file total frames:" + `origframes`
#	print "Skipped "  + `skipped_frames` + " frames"
#	print "Duplicated "  + `duplicate_frame` + " frames"
#	print `bad_frames` + " bad "  + " frames"
#	print "Output file total frames:" + `frames`
#	return frames

def conv_aud(file):
	a_cmd = ( MENCODER + " \"" +file + "\" -v -of rawaudio -oac lavc -ovc copy -lavcopts acodec=mp2:abitrate=" + `options.abps` + " -o " + MP2TMP )
	identify = commands.getoutput( MPLAYER + " -frames 0 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID|VIDEO|AUDIO\"")
	p = re.compile ("([0-9]*)( ch)")
	m = p.search( identify )
	if m:
		c = m.group(1)
		if options.channels == None:
			if c > 2:
				a_cmd = a_cmd + " -af channels=2,resample=" +`options.hz`+ ":1:2"
			else:
				a_cmd = a_cmd + " -af resample=" +`options.hz`+ ":1:2"
		elif options.channels >= 2:
			a_cmd = a_cmd + " -af channels=2,resample=" +`options.hz`+ ":1:2"
		else:
			a_cmd = a_cmd + " -af channels=1,resample=" +`options.hz`+ ":1:2"

	proc = subprocess.Popen(a_cmd,shell=True,stdout=subprocess.PIPE,universal_newlines=True,stderr=subprocess.STDOUT)

	v_out = ""
	
	p = re.compile ("f (\(.*%\))")
	for line in proc.stdout:
		m = p.search( line )
		if m:
			print "Transcoding audio: " + m.group(1) + "\r" ,
	print "Transcoding audio:   done"


def write_header(frames):
	print "Creating header"

	audiostart=36
	if options.dpg == 1:
		audiostart += 4
	elif options.dpg == 2:
		audiostart += 12
	
	audiosize = os.stat(MP2TMP)[stat.ST_SIZE]
	videosize = os.stat(MPGTMP)[stat.ST_SIZE]
	videostart = audiostart + audiosize
	videoend = videostart + videosize
	f=open(HEADERTMP, 'wb')
	DPG = "DPG" + `options.dpg`
	headerValues = [ DPG, int(frames), options.fps, 0, options.hz , 0 ,int(audiostart), int(audiosize), int(videostart), int(videosize) ]
	
	f.write (struct.pack( "4s" , headerValues[0]))
	f.write (struct.pack ( "<l" , headerValues[1]))
	f.write (struct.pack ( ">h" , headerValues[2]))
	f.write (struct.pack ( ">h" , headerValues[3]))
	f.write (struct.pack ( "<l" , headerValues[4]))
	f.write (struct.pack ( "<l" , headerValues[5]))
	f.write (struct.pack ( "<l" , headerValues[6]))
	f.write (struct.pack ( "<l" , headerValues[7]))
	f.write (struct.pack ( "<l" , headerValues[8]))
	f.write (struct.pack ( "<l" , headerValues[9]))

	if options.dpg == 0:
		f.write (struct.pack ( "<l" , options.pf ))
	if options.dpg == 2:
		gopsize = os.stat(GOPTMP)[stat.ST_SIZE]
		f.write (struct.pack ( "<l" , videoend ))
		f.write (struct.pack ( "<l" , gopsize))
		f.write (struct.pack ( "<l" , options.pf ))


	f.close()
def mpeg_stat():
	p = re.compile ("frames: ([0-9]*)\.")
	s_out = commands.getoutput( MPEG_STAT + " -offset " + STATTMP + " " + MPGTMP )
	m = p.search( s_out )
	frames = m.group(1)
	if options.dpg == 2:
		gop=open(GOPTMP, 'wb')
		stat=open(STATTMP, 'rb')
		frame = 0
		for line in stat:
			sline = line.split()
			if sline[0] == "picture" :
				frame += 1
			elif sline[0] == "gop":
				gop.write (struct.pack ( "<l" , frame ))
				gop.write (struct.pack ( "<l" , int(sline[1])/8 - 140 ))
		gop.close()
		stat.close()
	return frames

def conv_file(file):
	print "Converting " + file
	conv_vid (file)
	conv_aud(file)
	frames = mpeg_stat()
	write_header(frames)
	dpgname = os.path.basename ( os.path.splitext ( file )[0] ) + ".dpg"
	
	print "Creating " + dpgname
	commands.getoutput( "cat \"" + HEADERTMP + "\" \"" + MP2TMP + "\" \"" + MPGTMP + "\" > \"" + dpgname + "\"")
	if options.dpg == 2:
		commands.getoutput( "cat \"" + GOPTMP + "\" >> \"" + dpgname + "\"")
	
	cleanup_callback (0,0)
	print "Done converting \"" + file + "\" to \"" + dpgname + "\""



from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f","--fps", type="int", dest="fps" , default=15)
parser.add_option("-q","--hq",action="store_true", dest="hq", default=False)
parser.add_option("-l","--lq",action="store_true", dest="lq", default=False)
parser.add_option("-v","--vbps", type="int", dest="vbps", default=256)
parser.add_option("-a","--abps", type="int", dest="abps", default=128)
parser.add_option("--height", type="int", dest="height", default=192)
parser.add_option("--width", type="int", dest="width", default=256)
parser.add_option("-z","--hz", type="int", dest="hz", default=32000)
parser.add_option("-c","--channels", type="int", dest="channels")
parser.add_option("--subcp", dest="subcp")
parser.add_option("-s","--sub", dest="sub")
parser.add_option("--font", dest="font")
parser.add_option("--mv", dest="mv")
parser.add_option("--ma", dest="ma")
parser.add_option("--nosub",action="store_true", dest="nosub", default=False)
parser.add_option("--dpg", type="int" , dest="dpg", default=2)
parser.add_option("--pf", type="int" , dest="pf", default=3)

(options, args) = parser.parse_args()

import signal

signal.signal(signal.SIGINT, cleanup_callback)
signal.signal(signal.SIGTERM, cleanup_callback)

import commands,re,stat,struct,subprocess
if options.dpg > 2:
	options.dpg = 2
if options.dpg < 0:
	options.dpg = 2

for file in args:
	conv_file(file)

Install :
Enregistrer dpgconv dans /usr/local/bin/
chmod +x /usr/local/bin/dpgconv
pour s en servir : dpgconv fichier.avi fichier2.avi fichier3.avi ...

Hors ligne

#78 Le 18/04/2008, à 06:00

teet

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

je cherche un script pour avoir "imprimer " dans le menu du clique droit d'un document (pdf,openoffice)
et surtout, toujours dans le menu du clique droit  "graver sur un disque" pour un fichier avi, comme on l'a pour une image iso.
merci


manger du castor et vous sauverez un arbre !
ubuntu user 6419

Hors ligne

#79 Le 18/04/2008, à 11:23

koflesinge

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

Ca dépends de ton environnement de bureau.Pour KDE, je ne peux pas te répondre , mais pour gnome et xfce c'est du pareil au meme.

Gnome :

-Installe nautilus-actions

-Ouvre la configuration des actions nautilus (menu préférence)

-il faut ensuite trouver la commande qui sert à graver les fichiers, ou à les imprimer(un man brasero dans le terminal fera surement l'affaire, sinon, une recherche dans la doc pour graver en ligne de commande).

-Ensuite, tu peux configure l'action , pour qu'elle n'apparaisse qu'avec certains types de fichiers ...


XCFE:

Quasiment la meme chose, sauf que  thunar-actions se situe dans le menu de thunar.Pour l'impression il faut regarder les thunar-sendto il me semble.



Ces outils (nautilus-actions et thunar-actions), sont réellements très performants et très pratiques ...

Actions pour envoyer des fichiers sur un téléphone portable (sous xfce), conversions de fichier vidéos (proposée uniquement si le fichier est un fichier vidéo)...

La difficulté est souvent de trouver la ligne de commande qui convient.il est meme possible de lier ces actions à un script que vous avez écrit.

Hors ligne

#80 Le 18/04/2008, à 12:15

teet

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

merci je vais voir tout ça


manger du castor et vous sauverez un arbre !
ubuntu user 6419

Hors ligne

#81 Le 19/04/2008, à 00:25

Arjuna

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

Mukri a écrit :

big_smile

Prend celui la en python il est 2 fois plus rapide que le script bash

#!/usr/bin/env python
import urllib, httplib, mimetypes, sys, re

def post_multipart(host, port, selector, fields, files):
    """
    Post fields and files to an http host as multipart/form-data.
    fields is a sequence of (name, value) elements for regular form
fields.
    files is a sequence of (name, filename, value) elements for data to
be uploaded as files
    Return the server's response page.
    """
    content_type, body = encode_multipart_formdata(fields, files)

    h = httplib.HTTP(host, port)

    h.putrequest('POST', selector)
    h.putheader('content-type', content_type)
    h.putheader('content-length', str(len(body)))
    h.endheaders()
    h.send(body)
    errcode, errmsg, headers = h.getreply()
    return h.file.read()

def encode_multipart_formdata(fields, files):
    """
    fields is a sequence of (name, value) elements for regular form
fields.
    files is a sequence of (name, filename, value) elements for data to
be uploaded as files
    Return (content_type, body) ready for httplib.HTTP instance
    """
    BOUNDARY = '---------------------------13049614110900'

    CRLF = '\r\n'
    L = []
    for (key, value) in fields:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"' % key)
        L.append('')
        L.append(value)
    for (key, filename, value) in files:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
        L.append('Content-Type: %s' % get_content_type(filename))
        L.append('')
        L.append(value)
    L.append('--' + BOUNDARY + '--')
    L.append('')
    body = CRLF.join(L)
    content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
    return content_type, body

def get_content_type(filename):
    return mimetypes.guess_type(filename)[0] or 'application/octet-stream'

params = [('MAX_FILE_SIZE', '3145728'), ('refer',
'http://reg.imageshack.us/v_images.php')]
files = [('fileupload', sys.argv[1], open(sys.argv[1], 'rb').read())]

open(sys.argv[1]).read()
text1 = post_multipart('imageshack.us', 80, '/index.php', params, files)
keyword = re.compile(r"(image to friends)+")
lines = str(text1).split('\n')

for line in lines:
    if keyword.search (line):
       foo = line.split('"')
       print foo[1]

USage:

./imageshack.py image.jpg

Excuse moi, ceci m'intéresse. Je dois bien l'enregistrer en fichier texte et le copier dans le dossier des scripts gnome, ou je fais totalement fausse route ?

Hors ligne

#82 Le 19/04/2008, à 06:36

Oreste visari

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

Personne n'as de script pour télécharger l'émission "c dans l'air" qui passe sur france 5 en semaine vers les 17H30 ?

J'adore cette émission mais je ne peut la regarder qu'en période scolaire, ce qui est vraiment énervant.


Ubuntu 16.04 - Asus UX303L

Hors ligne

#83 Le 20/04/2008, à 19:48

Xun

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

Est-ce que le script d'encodage pour PSP marche aussi pour ipod (touch pour moi) ?

Nan car j'arrete pas d'essayer de convertir un film en fichier ipod avec Avidemux, mencoder ou ffmpeg... Le fichier en lui même marche, mais Quicktime ne veut pas le lire (j'ai oublié le message d'erreur, et vu que je suis pas sous win ...), c'est assez embetant ...

Xun

Hors ligne

#84 Le 21/04/2008, à 10:50

Ras&#039;

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

La meilleure solution n'est elle pas d'essayer ?
Ca m'interesse aussi mais j'ai pas d'ipod pour tester :\


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#85 Le 22/04/2008, à 13:52

delphin2

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

Script rm et restauration
Spécifications

Il s'agit de remplacer la commande rm initiale (par alias) par un script afin de ne pas supprimer directement le fichier mais qu'il soit déplacé vers une corbeille et versionné (date et heure/min/s) pour qu'il puisse être restaurée si la suppression n'était pas volontaire.


#!/bin/sh
# Version 1!
#Variable qui contient le chemin vers la corbeille
trash=~/Test
opt=-
#Cas de la suppression d'un fichier
while getopts ":if" OPTION 
do
	case $OPTION in
	i)  # gestion option "-i"
		opt+="i "
		;;
	f)  # gestion option "-f"
		opt+="f "
		;;
	:)  # gestion d'absence de paramètre
		opt=""
		;;
	\?) # gestion d'option incorrecte
		echo "Option incorrecte"
		echo
		echo "Usage : rm.sh [option] [paramètre]"
		echo "Options = -i (confirmation) ou -f (sans confirmation) ou r (recursif)"
		echo
		exit
		;;
esac
done
#On vérifie que le param soit bien passé
if [ "$#" -lt 1 ]
then
	echo "syntaxe: rm <option(s)> <nom_de_fichier>"
	exit
fi
#On remet le pointeur après les options
shift $(($OPTIND - 1))
dArg=$1
if [ $opt = - ]
then
	opt=
fi
#Variable qui contient la date courante
date=`date +%FT%T`
#Variable qui contient le nom du fichier une fois stocké dans la poubelle
ficT="${dArg}_${date}_file"
ficL="${dArg}_${date}_link"
#Variable qui contient le chemin Initial du fichier/dossier
chemI=`pwd`
#Cas ou il n'y a pas d'option
cmd=`mv $opt $dArg $trash/$ficT`
$cmd 
cmd=`echo $chemI > $trash/$ficL`
$cmd

Script de restauration (Non non on n'est pas au restaurant)

Il sagit d'un script qui permet de restaurer des fichiers tout en créant des dossiers de dates...

#!/bin/bash
trash=~/Test
cd $trash
opt=-
#Cas de la restauration d'un fichier
while getopts ":if" OPTION 
do
case $OPTION in
i)  # gestion option "-i"
	opt+="i "
	;;
f)  # gestion option "-f"
	opt+="f "
	;;
	:)  # gestion d'absence de paramètre
	opt=""
	;;
\?) # gestion d'option incorrecte
	echo "Option incorrecte"
	echo
	echo "Usage : rm.sh [option] [paramètre]"
	echo "Options = -i (confirmation) ou -f (sans confirmation) ou r (recursif)"
	echo
	exit
	;;
esac
done
if [ $opt = - ]
then
	opt=
	dArg=$1
fi
shift $(($OPTIND - 1))
dArg=$1
#nombre de lignes du fichier ou il y a file
let nbLignes=`ls |grep "file"|grep ${dArg}_ |wc -l`
let i=1
#affichage de chaque ligne avec le chemin du repertoire
while [ $i -le $nbLignes ]
do
		#la ligne que veut l'utilisateur
		#let ligne=$nbLignes-$i
		#récupération de la date du fichier
		date=`ls |grep "file"|grep ${dArg}_|tail +$i|head -1 |cut -d"_" -f2`
		tmp="${dArg}_${date}_link"
		chemin=`cat $tmp`
	 echo $i  $date $chemin
		let i=$i+1
done 
echo ""
if [ $nbLignes -eq "0" ]
then
	echo "Il n'y a pas de fichiers/dossiers portant ce nom dans la corbeille"
	exit
fi
read -p "quel est le numéro du fichier/dossier: " noFic
if [ $noFic -gt $nbLignes ]
then
	echo "Veuillez entrer un numéro de version disponible"
	exit
fi
#récupération de la date du fichier
date=`ls |grep "file"|grep ${dArg}_|tail +${noFic}|head -1 |cut -d"_" -f2`
tmp="${dArg}_${date}_link"
chemin=`cat $tmp`
read -p "Dans quel dossier voulez vous déplacer le fichier: (Ne rien mettre pour le chemin par défaut, sinon entrer un chemin relatif): " arborescence
if [  -z "$arborescence" ]
then 
		arborescence=$chemin
fi
nomFichier=`ls |grep "file"|grep ${dArg}_|tail -${noFic}|head -1`
cmd=`mv $opt $trash/$nomFichier $arborescence/${dArg} `
$cmd 
rm $tmp
# on quitte
exit 0

Hors ligne

#86 Le 22/04/2008, à 14:03

delphin2

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

Spécifications

Il s'agit de pouvoir se connecter au serveur à distance par reverse ssh quand le port 22 est fermé en entrée chez le client.
L'idéal serait d'avoir un script/logiciel à lancer qui effectue ça automatiquement à partir d'un des posts clients en ouvrant l'accès au serveur. Un mail ou un avertissement quelconque pourra être envoyé au moment de l'ouverture de la connexion.


Start_client.sh

#!/bin/bash
#Ip du serveur à contacter
ip="ip"
#Nom du script à exécuter sur le serveur
name="./reverse/Start_serveur.sh"
#User
user="login"
#Commande finale
echo "Lancement de la commande"
xterm -e "ssh -l $user $ip $name"
echo "Fin de la commande"
#On utilise un xterm connecté sur le serveur pour éviter les problème de processus en background qui pose problème avec les ssh

Stop_client.sh

#!/bin/bash
#Ip du serveur à contacter
ip="ip"
#Nom du script à exécuter sur le serveur
name="./reverse/Stop_serveur.sh"
#User
user="login"
#Commande finale
cmd=`ssh -f -l $user $ip $name`

Start_serveur.sh

#!/bin/bash
#Nom du script sur le serveur
name="Start_serveur.sh"
#user
user="login"
#Port en entrée
portE="1100"
#Port sur le serveur du login
portC="22"
#Ip du serveur login à atteindre
ip="ip"
#On vérifie que le script n'est pas déjà lancé:
pidssh=`pidof ssh`
if [ -z "$pidssh" ]
then    
	echo "Reverse SSH Open"
	`ssh -l $user -R $portE:localhost:$portC $ip` 
	echo "Reverse ssh stoppé"
fi

Stop_serveur.sh

#!/bin/bash
#Suppression de tous les processus ssh qui sortent du serveur
`kill $(pidof ssh)`

Commande pour un test

Pour se connecter en reverse ssh il suffit alors de faire:

ssh -p 2222 localhost

ou après p on spécifie le port donné plus haut.

lol

Dernière modification par delphin2 (Le 22/04/2008, à 14:07)

Hors ligne

#87 Le 22/04/2008, à 14:16

jobastr

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

smile Bonjour,

J'aurais voulu savoir s'il était possible de créer un script (Nautilus script) capable de convertir un fichier "tar.gz" en ".deb" ou capable d'installer directement un fichier "tar.gz", j'ai essayé mille fois de compiler des prgs à partir de ce type de fichier, je n'y arrive pas.

Ayez pitié de mon incompétence.:P

Hors ligne

#88 Le 22/04/2008, à 14:39

hells_dark

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

jobastr a écrit :

smile Bonjour,

J'aurais voulu savoir s'il était possible de créer un script (Nautilus script) capable de convertir un fichier "tar.gz" en ".deb" ou capable d'installer directement un fichier "tar.gz", j'ai essayé mille fois de compiler des prgs à partir de ce type de fichier, je n'y arrive pas.

Ayez pitié de mon incompétence.:P

ben un tar.gz, c'est une archive.. on sait pas comment sont répartis les fichiers dedans..
sinon, pour faire des deb avec ce "genre d'archives", checkinstall est super.


"You caught me at a strange time in my life."
devianArt - site perso

Hors ligne

#89 Le 22/04/2008, à 16:13

jobastr

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

Je vais faire des recherches sur "checkinstall"
Merci

Hors ligne

#90 Le 22/04/2008, à 19:04

Slystone

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

Eventuellement j'aurais une demande : un script pour téléchargement un type de fichier sur une page internet. Par exemple ça m'arrive de télécharger des livres en audio, et tout irait bien plus vite avec un petit script plutôt que de cliquer sur chaque lien pour les télécharger (surtout quand y en a plus de 50). Je suis sûr que ça intéresse plein de monde et pas seulement pour le mp3 (peux pas avec le ogg, mon nokia ne connaît que ça... hmm)
Merci d'avance ! big_smile S'il existe déjà, je ne l'ai pas vu en faisant une recherche. (et puis si quelqu'un se donne le mal de le faire, le bonheur serait d'insérer des lignes explicatives dans le code vu que j'y connais que dalle, faut un début à tout hein ?). Bravo pour votre travail en tout cas, ça donne vraiment envie d'apprendre le shell !:)


«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.

Hors ligne

#91 Le 22/04/2008, à 20:19

Gillaume

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

Excellent ce topic, je le mets
en démarrage de firefox.

pfff, je sais pas coder, ou presque pas ....
j'ai honte, après 10 ans de linux ... cool  roll


Guili Guili

Hors ligne

#92 Le 22/04/2008, à 20:25

Itsu

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

Slystone, downthemall plugin pour firefox fait très bien ça wink https://addons.mozilla.org/en-US/firefox/addon/201

Hors ligne

#93 Le 22/04/2008, à 20:42

Xun

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

Juste une question qui prouve que je suis inculte: en quel language sont écrit ces script; python ?

Xun

Hors ligne

#94 Le 22/04/2008, à 20:47

Slystone

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

Merci beaucoup ! Ca ça va me faciliter la vie !:cool:


«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.

Hors ligne

#95 Le 22/04/2008, à 20:55

Itsu

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

pas de quoi wink

Xun a écrit :

Juste une question qui prouve que je suis inculte: en quel language sont écrit ces script; python ?
Xun

en règle général, les scripts shell sont écrits en bash, ksh ...
plus rarement en python ou meme ruby je crois wink

Hors ligne

#96 Le 22/04/2008, à 21:54

Xun

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

Ok, merci de cette réponse !

Bonne nuit!

Xun

Hors ligne

#97 Le 22/04/2008, à 22:45

d.xav

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

Salut,

Mon script pour faire des sauvegardes de mon /home avec rsync

Features :
- sauvegarde incrémentielle tous les jours de la semaine,
- sauvegarde totale toutes les semaines, tous les mois, tous les ans,
- rapports d'erreurs dans les fichiers log

http://forum.ubuntu-fr.org/viewtopic.php?pid=1696230#p1696230

Hors ligne

#98 Le 22/04/2008, à 23:39

Shrat

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

Gillaume a écrit :

Excellent ce topic, je le mets
en démarrage de firefox.

pfff, je sais pas coder, ou presque pas ....
j'ai honte, après 10 ans de linux ... cool  roll

Aincrédibeulh!!!!

Hors ligne

#99 Le 23/04/2008, à 21:36

beudbeud

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

Oreste visari a écrit :

Personne n'as de script pour télécharger l'émission "c dans l'air" qui passe sur france 5 en semaine vers les 17H30 ?

J'adore cette émission mais je ne peut la regarder qu'en période scolaire, ce qui est vraiment énervant.

Téléchargement de l'émission c dans l'air

- Auteurs : écrit par beudbeud

- Dépendances : mimms

#!/bin/sh
#script de beudbeud
 
#creation du répertoire
mkdir -p $HOME/Vidéos/c_dans_l_air/

#récupération de l'id
IDART=`wget -O - -q http://www.france5.fr/c-dans-l-air/index-fr.php?page=videos | grep -m1 id_article= | awk -F= '{print $4}' | awk -F'"' '{print $1}'`

#récupération du titre de l'émission
TITREBASE=`wget -O - -q http://www.france5.fr/c-dans-l-air/index-fr.php?page=videos | grep id_article=$IDART | grep title | awk -F"'" '{print $6}'`
TITRE=`echo $TITREBASE | iconv -c | tr '[àâäéèêëîïôöùûü]' '[aaaeeeeiioouuu]' | sed -e "s/[[:space:]]/_/g" | sed -e "s/\/$//" | sed -e "s/'/_/g" |  sed -e "s/-/_/g" | sed -e "s/__/_/g"`

#récupération de la date de l'émission
DATE=`wget -O - -q http://www.france5.fr/c-dans-l-air/index-fr.php?page=videos | grep id_article=$IDART | grep title | awk -F= '{print $6}' | awk -F"'" '{print $1}'`

#récupération du lien mms
URL="http://www.france5.fr/c-dans-l-air/index-fr.php?"
FILE1=`wget -O - -q $URL"page=resume&id_article=$IDART" | grep mms | awk -F= '{print $4}' | awk -F"&" '{print $1}'`

#téléchargement
mimms -c $FILE1 $HOME/Vidéos/c_dans_l_air/"$DATE"_"$TITRE".wmv

#message de fin
echo message:enregistrement de c dans lair terminé| zenity --notification --listen --window-icon="info"

ensuite pour automatiser le téléchargement on utilise cron

crontab -e

et tu rajoute la ligne suivante

DISPLAY=":0.0"
# m h  dom mon dow   command
50 17 * * 2,3,4,5,6 lien_du/script/lescript.sh

donc le script se lancera du mardi au vendredi a 17h50 pour récupéré l'émission de la veille

et si tu utilise fcron

fcrontab -e

et ensuite

&50 17 * * 2,3,4,5,6 emplacement/du/script./cdslair.sh

Dernière modification par beudbeud (Le 13/05/2008, à 12:13)


Télécharger les émissions de Arte +7 avec Arte +7 recorder
Theme pour Ubuntu Bisigi Project

Vostro 1510 Ubuntu 10.04

Hors ligne

#100 Le 23/04/2008, à 21:39

K -Lune noire

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

@ Mathieu pour le touchpad j'ai trouvé ça sur planet gnome : http://www.advogato.org/person/mjg59/diary.html?start=115
cela devrait m'epargner la compilation du paquet smile


- L'avenir appartient à  ceux qui rêvent trop -

Hors ligne