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.

#401 Le 09/11/2008, à 18:59

yamo

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

teet a écrit :

salut
je cherche un script pour imprimer l'arborescence d'un dossier,  quelqu'un a ça ?
merci

Du style :

 ls -alt ~/* | lpr

ou j'ai mal compris la question?


Stéphane
--
Debian 9 XFCE  Xubuntu 16.04.2  - #ubuntu sur freenode

sudo / matrix

Hors ligne

#402 Le 09/11/2008, à 19:15

yamo

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

yamo a écrit :
teet a écrit :

salut
je cherche un script pour imprimer l'arborescence d'un dossier,  quelqu'un a ça ?
merci

Du style :

 ls -alt ~/* | lpr

ou j'ai mal compris la question?

Attention cette commande fonctionne un peu trop bien (j'ai un imprimante branchée sur un routeur mais où ne peut pas tuer la tâche d'impression! )...

Donc je remplacerais cette commande par :

 ls -alt ~/Bureau/ | lpr

yamo, ou le retour du ver qui s'attaquait aux imprimantes tongue


Stéphane
--
Debian 9 XFCE  Xubuntu 16.04.2  - #ubuntu sur freenode

sudo / matrix

Hors ligne

#403 Le 09/11/2008, à 20:25

teet

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

oui un peu comme ça mais en script : j'ai un dossier avec sous-dossiers et je voudrai imprimer la liste des s/dossiers pour en faire par exemple une jaquette cd.


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

Hors ligne

#404 Le 10/11/2008, à 22:44

Ubuntu-Noobie

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

Bonjour à tous,

Je cherche un script qui me monterai mon disk externe à l'allulage de mon pc... quelqu'un peut me faire cette petite ligne?

Merci!!


"Quand on voit ce qu'on voit, qu'on entend ce qu'on entend... on a raison de penser ce qu'on pense" [coluche]

Hors ligne

#405 Le 10/11/2008, à 23:35

wido

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

Pas besoin d'un script pour monter un disque dur externe.
il suffit de lancer :

sudo fdisk -l

tu reperes la ligne qui fait réferencer à ton disque dur (/dev/hdbX)
tu crées un dossier /media/bidule, il faut être en root

sudo mkdir /media/bidule

et tu l'ajoutes au fstab:

/dev/hdbX  /media/bidule  ntfs-3g  rw,auto 0  0

Note: hdbX dibule sont à modifier par tes valeurs
http://doc.ubuntu-fr.org/tutoriel/comme … permanente

Dernière modification par wido (Le 10/11/2008, à 23:36)

Hors ligne

#406 Le 11/11/2008, à 10:13

Ubuntu-Noobie

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

Ah ok, merci!


"Quand on voit ce qu'on voit, qu'on entend ce qu'on entend... on a raison de penser ce qu'on pense" [coluche]

Hors ligne

#407 Le 15/11/2008, à 20:49

andrelec1

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

Bonjours voila je voudrais faire un script qui ce lance au démarrage et qui écrie des chose dans un fichier html et fini par reboot le pc mais j'ai besoin de quelque commande !

Reboot sans demande de mdp ( ou exécuter le script en root )
Faire un echo avec le temps qu'il reste avec qu'il reste avant le reboot dans un html ( ou php )


alors voila ce que devras faire le script final :
Le pc boot :
- Copie du contenue de index1.php dans index.php
- Lancer un deconte et le retournee dans une page html (toute les minute au minimum et toute les 5 minute au max )
- 5 minute avant le reboot
              - copier index.php dans index1.php
              - copier indexreboot.php dans index.php
- reboot


et on recommence

comment faire ??


Je crois que mes chances avec elle sont tellement mince que si on gravait des processeurs a cette epaisseur on atteindrait les 12 ghz.
████████████████████████████
█████████ Black -Out  ███████████
████████████████████████████

Hors ligne

#408 Le 16/11/2008, à 10:48

Ras'

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

Bon vu que c'est quand même facile je vais quand même t'aider wink

Pour copier une variable dans un fichier il faut faire
"echo $var > fichier" ça le met dans le fichier
"echo $var >> fichier" ça le met à la fin, après le reste (ça écrase pas le fichier avant donc)

pour copier un fichier c'est "cp fichier_à_copier nouveau_fichier"
pour déplacer un fichier (donc ce que tu veux ici) c'est "mv index.php index1.php"
pour rebooter c'est reboot ^^

Pour que ton script se lance au démarrage il faut que tu ailles dans "Systèmes > Préférences > Session > Programmes au démarrage > Ajouter > ton_script" ou que tu le mette dans /etc/init.d ou un truc comme ça, cherche dans le forum.

Pour reboot sans mot de passe tu peux aller voir ici : http://forum.ubuntu-fr.org/viewtopic.php?pid=2122502 et tu adaptes à ton cas, donc au lieu de metter shutdown tu met reboot ( et tu test en normal avant de tester dans ton script hein wink )

Voilà t'as plus qu'a mettre tout ça en forme sachant que quand tu sais pas comment marche une commande tu fais "man la_commande"


Bon dimanche big_smile


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

#409 Le 30/11/2008, à 13:14

Julientroploin

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

Bon si j'ai bien compris, c'est ici qu'on demande de l'aide aux gens qui savent parler aux machines...

Bon, mon problème (posté ailleur sans résolution pour l'instant) : impossible de faire démarrer xcompmgr au démarrage de ma session LXDE. Et mon dock n'apparait pas à l'écran tant que le composite n'est pas activé.

Mon idée : mettre un script sur le bureau pour le démarrer en un double-clic.

Ce que j'ai fais : j'ai créé un fichier texte sur le bureau j'y ai mis :

xcompmgr -c -f

et j'ai donné les droits d'exectution au fichier.
Jusque là je suis content de moi : c'est mon premier script big_smile
Mais bon j'aimerais l'améliorer un peu mais j'en suis incapable seul...

En langage humain, voila ce que je voudrais :
1-Vérifie si xcompmgr tourne (je suppose que c'est indispensable avant de faire les étapes 2 et 3)
2-Si non, démarre le avec xcompmgr -c -f
3-Si oui, arrete le (ben oui, des fois il me cause des problèmes... ça m'éviterait de lancer le moniteur système pour le "Terminer" voire le "Tuer")

Ca doit pas être compliqué... quand on sait faire.

Non?


Fixe : Core i5, 8GoRAM, NVidia 9800GT Silent => Ubuntu 22.04
Portable Compaq Presario2158 : AthlonXP-M2400+, 1GoRAM, ATI Radeon mobility320M => Primtux
https://launchpad.net/~julienmbpe

Hors ligne

#410 Le 30/11/2008, à 15:00

n3o51

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

Yop cela devrait repondre a t'as demande

#!/bin/bash
# 
################################
EXEC='xcompmgr -c -f' 
if [ ! "$(pidof xcompmgr)" ]; then
      $EXEC
else
      killall xcompmgr
    fi
    exit 0
fi

Dernière modification par n3o51 (Le 30/11/2008, à 15:00)


Welcome to the real world
________________________________

Hors ligne

#411 Le 30/11/2008, à 18:58

Julientroploin

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

Super, ton script fait exactement ce que je demandais... malheureusement il a une sorte d'effet secondaire : mon dock (avant-window-manager) réappartait au centre (horizontalement ET verticalement) de l'écran lorsque le compositer est réactivé...

du coup, je me demande si il ne faut pas tuer et redémarrer les deux : le compositer et awn
J'ai essayé :

#!/bin/bash
# 
################################
EXEC='avant-window-navigator&xcompmgr -c -f' 
if [ ! "$(pidof xcompmgr)" ]; then
      $EXEC
else
      killall xcompmgr
      killall avant-window-navigator
    fi
    exit 0
fi

mais ça doit pas être ça, plus rien ne se passe sad
j'aurais au moins testé... encore un coup de main?

Et je vais encore pousser un peu : comme le script est sur le bureau, c'est pas possible de lui dire de mettre un joli icone? (sinon c'est pas une cata non plus...)


Fixe : Core i5, 8GoRAM, NVidia 9800GT Silent => Ubuntu 22.04
Portable Compaq Presario2158 : AthlonXP-M2400+, 1GoRAM, ATI Radeon mobility320M => Primtux
https://launchpad.net/~julienmbpe

Hors ligne

#412 Le 30/11/2008, à 20:57

n3o51

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

plop bon alors

je pense que c'est normal bon je connais pas xcompmgr c'est un composite et AWN a besoin de lui pour fonctionner
Quand tu ecrit un script il faut suivre cette logique puis ce que le script fonctionne comme tu l'ecrit donc pour que ca fonctionne

je ferais plutot

#!/bin/bash
# 
################################
EXEC=' xcompmgr -c -f' 
if [ ! "$(pidof xcompmgr)" ]; then
      $EXEC &
sleep 10; # on attends que xcompmgr ce lance 
avant-window-navigator &
else
      killall xcompmgr
      killall avant-window-navigator 
    fi
    exit 0
fi

devrait mieux fonctionner  ?


Welcome to the real world
________________________________

Hors ligne

#413 Le 30/11/2008, à 22:14

Julientroploin

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

Nickel cette fois... Merci big_smile
Par contre j'ai fais des tests en diminuant progressivement jusqu'à sleep 1 et ça marchait toujours donc j'ai mis la ligne en commentaire. et ça mrche.
Le problème devait venir de ma synthaxe pourrie. mais c'est bien tu m'a appris une nouvelle commande (ce qui double presque mes connaissances...)

Merci encore.


Fixe : Core i5, 8GoRAM, NVidia 9800GT Silent => Ubuntu 22.04
Portable Compaq Presario2158 : AthlonXP-M2400+, 1GoRAM, ATI Radeon mobility320M => Primtux
https://launchpad.net/~julienmbpe

Hors ligne

#414 Le 30/11/2008, à 23:04

n3o51

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

le probleme venait d'une part de la variable exec qui ne fonctionne pas big_smile
Ensuite si tu veut mettre tout dans une variable fait comme ca :

EXEC='xcompmgr -c -f && avant-window-navigator'
ca devrait fonctionner aussi

Content d'avoir repondu a t'as demande smile


Welcome to the real world
________________________________

Hors ligne

#415 Le 02/12/2008, à 18:34

damien92

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

salut,
But du script

ce script vérifie l'age du programme TV téléchargé et le télécharge si il est périmer.
Cela évite de le télécharger tous les jours et/ou de se retrouver sans programme tv ou avec freevo qui dit :"programme tv éronner" et n'affiche pas le tv.

prérequi
Avoir un logiciel qui utilise le programme tv et configuré tel tvtime ou freevo.
avoir installer xmltv et l'avoir configurer

astuce
lancer le script dans un cron toutes les heures par exemple.

utilisation

copier coller le code ci-dessous dans un fichier texte et changer les droit pour autoriser l'exécution(clique droit propriété permission autoriser pour exécution)

#!/bin/bash

#définitions des variables
path_prog_tv=~/.freevo/TV.xml 		#chemin et nom du fichier de programme tv
nb_jour=2 				#nombre de jour à télécharger
path_log=~/.freevo/log/progtv.log	#chemin du fichier de log
aujourdhui2=$(date)			#récupération de la date du jour format standard

aujourdhui=$(date +'%j');		#récupération du jour de l'année de 1 à 366

#test de la présence du fichier de programme tv

if [ -e  $path_prog_tv ]; then
	{
 	       echo "Programme tv présent"  #il y en a un donc on ne fait rien
	}
else
	{
	  tv_grab_fr --slow --output $path_prog_tv --days 2     #il n'y en a pas on le télécharge
	  echo "Programme tv télécharger le : "$aujourdhui2 >> $path_log
	}
fi

age=$(date  +'%j' -r $path_prog_tv );	#récupération du jour de l'année de création du fichier de programme tv
echo "jour de création du programme tv : " $age" éme jour de l'année"
echo "nous somme le "$aujourdhui " éme jour de l'année";

dif=$(($aujourdhui-$age));		#calcul de l age
echo "age programme tv :"$dif "jour(s)"

#test la présence du fichier de log le crée s'il n'est pas la.
if [ -e $path_log ]; then
	{
		echo "Fichier de log présent"
	}
else
	{
		echo "fichier de log du programme TV" > $path_log
	}
fi




#test de l'age du fichier si il es périmer on le retélécharge
if [[ $dif > $nb_jour  ]]   ;then 	# à ajouter pour le chgangement d'année mais ca ne marche pas || [ $dif < -1 ]
	{
	tv_grab_fr --slow --output $path_prog_tv --days $nb_jour
	echo "fichier télécharger le : "$aujourdhui2 >> $path_log
	}
else
	{

	echo "fichier à jour le : "$aujourdhui2 >> $path_log

	}
fi

exit 0

a+

Dernière modification par damien92 (Le 04/12/2008, à 19:41)

Hors ligne

#416 Le 02/12/2008, à 21:10

n3o51

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

Salut déjà sympa de partager ce script , mais quand même pourrais tu suivre la logique du topic.
Le but premier de celui-ci est d'une part de donner a des personnes la possibilité de demander qu'on leur en créer un.

D'autre part on  peut y déposer nos scripts  utiles

Sache que des personnes qui passent sur ce forum qui on installés ubuntu pour la première fois Ubuntu passerons sur ce forum . J' extrapole peut-être un peut mais vont copier bêtement ton script

Et cinq minutes après posterons sur le forum .

Donc merci de lire le premier post du topic et de faire ce qui est demandé.

→ But ?
→ Dépendances ?
→ Etc ...
→ Comment utilisés celui-ci ? 

Aussi si tu pouvait éviter les liens en dur

Merci !!!


EDIT : le premier post a disparu , désole mais le troisième est une bonne base .

Dernière modification par n3o51 (Le 02/12/2008, à 21:17)


Welcome to the real world
________________________________

Hors ligne

#417 Le 02/12/2008, à 21:39

n3o51

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

AfterDown V 1.0

I . But de ce script :

Voila j'ai un ami qui télécharge beaucoup avec Downthemall (gestionnaire de telechargement pour firefox).
Et qui en avait assez de laisser tourner toute la nuit son ordinateur pour un telechargement  terminer.
Donc ce script va permettre d'eteindre votre ordinateur aprés fermeture de Downthemall.

II . Dépendances et pré requis

1. Avoir installés Zenity ( normalement installés par défaut sous Ubuntu).
2. Faire en console :
   
   

sudo chmod +s /sbin/shutdown

Note : J'ai demander une meilleur solution sur ce topic  http://forum.ubuntu-fr.org/viewtopic.php?id=274878 mais je n'es toujours pas de réponse la solution    d'edition du fichier /etc/sudoers ne fonctionnant vissiblement pas sous Ubuntu

3. Aprés avoir copier le contenu du script si dessous lui donner les droits en execution

  chmod +x $nom_du_script

4.  Il faut aussi aller dans les préferences de Downthemall puis onglets principal et coché fermer downthemall apres les telechargement. Note : Firefox doit lui aussi etre fermés

5. Une tache cron peut etre ajoutez a vous de voir mais je conseillerai plutot de lancer le script apres avoir lancer les télechargement via Downthemall .

III . Le script

#!/bin/bash
# AfterDown.sh V 1.0
################################
# Avant exécution faire sudo chmod +s /sbin/shutdown dans un terminal 



		# ################################################## #
		# Ce script permet d'arretter l'ordinateur aprés                                                       #
		# fin des telechargements avec DownthemAll                                                           #
                #                                                                                                                               #
                #                                                                                                                               #
		# ################################################## #


# Script créer par N3o51 sur une idée de Xeno 



## Fonction Menu Choix d'arrêter la programmation ou de continuer en indiquant une nouvelle durée
## Le temps seras définit en Mn 

function MENU { 
 ACT=$(zenity --list --checklist --width=400 --height=350 --title "L'extinction programmé de votre ordinateur a été suspendu" --text="Veuillez sélectionnez les informations demandés:" \
--column="Sélection" --column="" --column="Catégories" --hide-column=2  \
FALSE SUSP "Suspendre l'arrét automatique" \
FALSE REPO "Reporter l'arrêt automatique" )

            if [ $? != 0 ] ; then
                    zenity --info --title="Fin du script !" --text="Merci d'avoir utilisé ce script. \n 
                                                                     Bonne journée ! \n
                                                                       N3o"
exit 0
            fi



        case $ACT in
## Choix 1 → Arrêt du script avec Notification via zenity 
        SUSP)

                     zenity --info --title="Fin du script !" --text="Merci d'avoir utilisé ce script. 
                                                                     \n Bonne journée !
                                                                        \n N3o"

exit 0
       

     ;;
        
        REPO)
## Choix deux on reporte l'extinction de l'ordinateur 
argument=$(zenity --entry --text="Quand souhaitez arrêter l'ordinateur ?" --entry-text="Temps en minute EX: pour 10 mn mettre +10" --title="Arrêter")
             if  [ ! $argument ] ; then exit
                  else 
            /sbin/shutdown -h  +$argument 
             fi

             if [ $? != 0 ] ; then
                     zenity --info --title="Fin du script !" --text="Merci d'avoir utilisé ce script. \n 
                                                                      Bonne journée ! \n
                                                                         N3o"
exit 0
             fi
  break
      
     ;;



    esac

}






          while true; do
## On vérifie l'état d'exécution de firefox ## Downthemall utilise Firefox 
            if [ ! "$(pidof firefox)" ]; then
## Firefox étant terminé un arrêt est programmé a 3 minute 
## Prévu de façon a laissé le temps d'annuler l'opération          
               /sbin/shutdown -h +3& 
## Information notifier a l'utilisateur
                       zenity --info --title='Verification' --text="Votre ordinateur va redémarrer.
                                                                     \n Annuler cette opération 
                                                                      \n Simplement en cliquant sur valider"
## Annulation de l'utilisateur 

              /sbin/shutdown -c 

## Lancement du Menu 

         MENU
break
       fi 
    
done
    exit 0;

Bonne utilisation !!

J'espère qu'il serviras a d'autre tongue

Dernière modification par n3o51 (Le 03/12/2008, à 18:21)


Welcome to the real world
________________________________

Hors ligne

#418 Le 05/12/2008, à 00:16

draco31.fr

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

damien92 a écrit :

salut,
But du script

ce script vérifie l'age du programme TV téléchargé et le télécharge si il est périmer.
Cela évite de le télécharger tous les jours et/ou de se retrouver sans programme tv ou avec freevo qui dit :"programme tv éronner" et n'affiche pas le tv.

prérequi
Avoir un logiciel qui utilise le programme tv et configuré tel tvtime ou freevo.
avoir installer xmltv et l'avoir configurer

astuce
lancer le script dans un cron toutes les heures par exemple.

utilisation

copier coller le code ci-dessous dans un fichier texte et changer les droit pour autoriser l'exécution(clique droit propriété permission autoriser pour exécution)

#!/bin/bash

#définitions des variables
path_prog_tv=~/.freevo/TV.xml 		#chemin et nom du fichier de programme tv
nb_jour=2 				#nombre de jour à télécharger
path_log=~/.freevo/log/progtv.log	#chemin du fichier de log
aujourdhui2=$(date)			#récupération de la date du jour format standard

aujourdhui=$(date +'%j');		#récupération du jour de l'année de 1 à 366

#test de la présence du fichier de programme tv

if [ -e  $path_prog_tv ]; then
	{
 	       echo "Programme tv présent"  #il y en a un donc on ne fait rien
	}
else
	{
	  tv_grab_fr --slow --output $path_prog_tv --days 2     #il n'y en a pas on le télécharge
	  echo "Programme tv télécharger le : "$aujourdhui2 >> $path_log
	}
fi

age=$(date  +'%j' -r $path_prog_tv );	#récupération du jour de l'année de création du fichier de programme tv
echo "jour de création du programme tv : " $age" éme jour de l'année"
echo "nous somme le "$aujourdhui " éme jour de l'année";

dif=$(($aujourdhui-$age));		#calcul de l age
echo "age programme tv :"$dif "jour(s)"

#test la présence du fichier de log le crée s'il n'est pas la.
if [ -e $path_log ]; then
	{
		echo "Fichier de log présent"
	}
else
	{
		echo "fichier de log du programme TV" > $path_log
	}
fi




#test de l'age du fichier si il es périmer on le retélécharge
if [[ $dif > $nb_jour  ]]   ;then 	# à ajouter pour le chgangement d'année mais ca ne marche pas || [ $dif < -1 ]
	{
	tv_grab_fr --slow --output $path_prog_tv --days $nb_jour
	echo "fichier télécharger le : "$aujourdhui2 >> $path_log
	}
else
	{

	echo "fichier à jour le : "$aujourdhui2 >> $path_log

	}
fi

exit 0

a+

Bonjour et merci pour ton script.
Tu laisse un commentaire comme quoi le changement d'année ne fonctionne pas, or nous nous en rapprochons de plus en plus !!!
Je pense que cette ligne ne rend jamais de nombre négatif :

dif=$(($aujourdhui-$age));

Par contre il doit être possible de comparer directement $aujourdhui à $age
si $age (ex : 365) est supérieur à $aujourdhui (ex : 1) alors on a changé d'année.
on peut donc calculer $dif par :

dif=$((365+$aujourdhui-$age))

Restera ensuite à régler le problème des années bisextiles !

Dernière modification par draco31.fr (Le 05/12/2008, à 00:17)

Hors ligne

#419 Le 05/12/2008, à 01:08

Shrat

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

Solution laide à ce genre de problèmes sur mon script de téléchargement de cdanslair...

Hors ligne

#420 Le 05/12/2008, à 18:35

damien92

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

si dif peu être négatif lorsque le fichier à été télécharger le 31 décembre age renvoi 366 ou 355 selon l'année ensuite lorsqu'on lance le script le 1 janvier alors on fait 1-366=-365 donc ceci est toujours inferieur à l'age du fichier et donc on ne télécharge jamais la solution simple consiste à supprimer le ficher le 1 janvier .

a+

Hors ligne

#421 Le 05/12/2008, à 19:22

pmd

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

Convertissez votre date en timestamp puis comparez. Non ?
(J'ai pas _du tout_ regardé le script et je me base sur les deux dernières réponses)

Hors ligne

#422 Le 05/12/2008, à 20:37

damien92

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

c'est quoi des timestamps?

Hors ligne

#423 Le 05/12/2008, à 21:36

n3o51

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

Le timestamp unix représente le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit GMT.

Exemple :     05/12/2008 20:35:46  → 1228505746

Tmestamps en date →

En shell avec awk :

 echo 1173279767 | awk '{print strftime("%c",$1)}'

En shell avec date :

 TIMESTAMP=1173279767
 date -d "1970-01-01 $TIMESTAMP sec GMT"

Je me rappelle plus comment avoir la date en timestamp en shell desolé

Dernière modification par n3o51 (Le 05/12/2008, à 21:44)


Welcome to the real world
________________________________

Hors ligne

#424 Le 05/12/2008, à 22:34

toufalk

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

But du script
Voilà, j'ai fait un petit script de "stop motion".
Ce script prend des photos via votre webcam régulièrement.
A la fin de l'enregistrement il encode ça en film format mpeg et efface toutes les images.
Si vous n'avez rien compris, voici un exemple ici, un autre là. Ces vidéos ne sont pas de moi, juste pour vous montrer à quoi ça peut ressembler.

dépendance
Nécessite uvccapture imagemagic mencoder

options disponibles
Les options du scripts sont le nombre de secondes entre chaque prise (d), le nombre d'images par seconde dans le film (r) et le nombre de secondes d'enregistrement (s). Chez moi, photo+screenshot prend une environ seconde.

Si vous ne spécifiez pas de temps, l'enregistrement se fera sur un an (prévoyez de la place sur votre disque dur big_smile ). Vous pouvez stopper l'enregistrement à tout moment avec [ctrl]+C. Ensuite pour encoder le film, il vous suffit de relancer le script avec l'option -f.

Si vous donner l'option -c, le script prendra des screenshots de l'écran et y incruste la photo de votre webcam en haut à gauche... Pour vous regarder travailler.

#!/bin/bash
# packages nécessaires : uvccapture imagemagic mencoder

fps="25" # frame-per-seconds (option -f) 
spi="5" # second-per-images (option -e)
tempo="31536000" # tempo d'origine : un an !


function usage {
    nom=$(basename $0)
    echo -e "$nom usage : $nom [-d spi] [-cefh] [-r fps] [-s sec]\n\
\th\taide\n\
\te\tcommence l'enregistrement (defaut)\n\
\tf\tfinalise la video\n\
\tc\tinsere un screenshot\n\
\td spi\tsecond-per-image de l'enregistrement (defaut:$spi)\n\
\ts sec\tnombre de seconde d'enregistrement (defaut:$tempo)\n\
\tr fps\tframe-per-second du film (defaut:$fps)\n"
    exit 1
}

function enregistrer {
    n="0"
    maintenant=$(date +%s)
    time_fin=$(( maintenant + tempo ))
    
    while [ ${maintenant} -lt ${time_fin} ]
    do
        nn="$n"
        while [ ${#nn} -lt 3 ]
        do
            nn="0${nn}"
        done
        if [ "${shot}" = "1" ]
        then
            uvccapture -m -t0 -x160 -y120
            import -window root -resize 640 "screen.jpg"
            composite -gravity Northwest "snap.jpg" "screen.jpg" "motion-${nn}.jpg"
        else
            uvccapture -m -t0 -x640 -y480
            mv "snap.jpg" "motion-${nn}.jpg"
        fi
        sleep ${spi}
        n=$(( n+1 ))
        maintenant=$(date +%s)
    done
    finaliser
}

function finaliser {
    mencoder "mf://motion-*.jpg" -mf fps=${fps} -o motion.mpeg -ovc lavc -lavcopts vcodec=mpeg4
    rm -f motion-*.jpg snap.jpg screen.jpg dix2pass.log
}

shot="0"
stofin="1"

#### GESTION OPTIONS ####
while getopts ":cd:efhr:s:" opt
do
    case $opt in
        c) shot="1" ;;
        d) spi="$OPTARG" ;;
        e) stofin="1" ;;
        f) stofin="2" ;;
        h) usage ;;
        r) fps="$OPTARG" ;;
        s) tempo="$OPTARG" ;;
        \?) echo 'Option bizare !!'
            exit 1 ;;
    esac
done


case $stofin in
    1) enregistrer ;;
    2) finaliser ;;
    *) echo "erreur etrange..." 
        usage ;;
esac

installation
Comme d'hab. On copie-colle le script dans un fichier (par exemple stop-motion.sh), on rend le script exécutable (chmod +x stop-motion.sh).

Je ne sais pas si c'est un script vraiment utile, mais bon... pourquoi ne pas le partager ! tongue

Hors ligne

#425 Le 05/12/2008, à 23:13

MimileVadrouille

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

toufalk a écrit :

But du script
Voilà, j'ai fait un petit script de "stop motion".
Ce script prend des photos via votre webcam régulièrement.
A la fin de l'enregistrement il encode ça en film format mpeg et efface toutes les images.
Si vous n'avez rien compris, voici un exemple ici, un autre là. Ces vidéos ne sont pas de moi, juste pour vous montrer à quoi ça peut ressembler.

dépendance
Nécessite uvccapture imagemagic mencoder

options disponibles
Les options du scripts sont le nombre de secondes entre chaque prise (d), le nombre d'images par seconde dans le film (r) et le nombre de secondes d'enregistrement (s). Chez moi, photo+screenshot prend une environ seconde.

Si vous ne spécifiez pas de temps, l'enregistrement se fera sur un an (prévoyez de la place sur votre disque dur big_smile ). Vous pouvez stopper l'enregistrement à tout moment avec [ctrl]+C. Ensuite pour encoder le film, il vous suffit de relancer le script avec l'option -f.

Si vous donner l'option -c, le script prendra des screenshots de l'écran et y incruste la photo de votre webcam en haut à gauche... Pour vous regarder travailler.

#!/bin/bash
# packages nécessaires : uvccapture imagemagic mencoder

fps="25" # frame-per-seconds (option -f) 
spi="5" # second-per-images (option -e)
tempo="31536000" # tempo d'origine : un an !


function usage {
    nom=$(basename $0)
    echo -e "$nom usage : $nom [-d spi] [-cefh] [-r fps] [-s sec]\n\
\th\taide\n\
\te\tcommence l'enregistrement (defaut)\n\
\tf\tfinalise la video\n\
\tc\tinsere un screenshot\n\
\td spi\tsecond-per-image de l'enregistrement (defaut:$spi)\n\
\ts sec\tnombre de seconde d'enregistrement (defaut:$tempo)\n\
\tr fps\tframe-per-second du film (defaut:$fps)\n"
    exit 1
}

function enregistrer {
    n="0"
    maintenant=$(date +%s)
    time_fin=$(( maintenant + tempo ))
    
    while [ ${maintenant} -lt ${time_fin} ]
    do
        nn="$n"
        while [ ${#nn} -lt 3 ]
        do
            nn="0${nn}"
        done
        if [ "${shot}" = "1" ]
        then
            uvccapture -m -t0 -x160 -y120
            import -window root -resize 640 "screen.jpg"
            composite -gravity Northwest "snap.jpg" "screen.jpg" "motion-${nn}.jpg"
        else
            uvccapture -m -t0 -x640 -y480
            mv "snap.jpg" "motion-${nn}.jpg"
        fi
        sleep ${spi}
        n=$(( n+1 ))
        maintenant=$(date +%s)
    done
    finaliser
}

function finaliser {
    mencoder "mf://motion-*.jpg" -mf fps=${fps} -o motion.mpeg -ovc lavc -lavcopts vcodec=mpeg4
    rm -f motion-*.jpg snap.jpg screen.jpg dix2pass.log
}

shot="0"
stofin="1"

#### GESTION OPTIONS ####
while getopts ":cd:efhr:s:" opt
do
    case $opt in
        c) shot="1" ;;
        d) spi="$OPTARG" ;;
        e) stofin="1" ;;
        f) stofin="2" ;;
        h) usage ;;
        r) fps="$OPTARG" ;;
        s) tempo="$OPTARG" ;;
        \?) echo 'Option bizare !!'
            exit 1 ;;
    esac
done


case $stofin in
    1) enregistrer ;;
    2) finaliser ;;
    *) echo "erreur etrange..." 
        usage ;;
esac

installation
Comme d'hab. On copie-colle le script dans un fichier (par exemple stop-motion.sh), on rend le script exécutable (chmod +x stop-motion.sh).

Je ne sais pas si c'est un script vraiment utile, mais bon... pourquoi ne pas le partager ! tongue

tout simplement bravo!!!!

Merci

Hors ligne