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.

#776 Le 25/11/2009, à 12:52

Sallé

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

yesss bien vu, MERCI!
J'ai remplacé le bin/sh au début par bin/bash et remplacé la ligne dont tu parles par

gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$chemin"

Donc ça fonctionne quand je lance le script dans un terminal. Par contre j'ai toujours le souci de ma commande fcron qui ne fonctionne pas

@ 1h /home/mugz/Images/Wallz/script-wallpaper

Hors ligne

#777 Le 25/11/2009, à 18:33

Gardouille

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

Sallé a écrit :

Donc ça fonctionne quand je lance le script dans un terminal. Par contre j'ai toujours le souci de ma commande fcron qui ne fonctionne pas

@ 1h /home/mugz/Images/Wallz/script-wallpaper

Salut,
Le script fonctionnait bien à l'époque où il a été écrit, mais depuis quelques versions d'ubuntu (et autres), j'ai été obligé de rajouter ceci dans mon crontab avant l'appel au script :

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CS8jkiKSaT,guid=e09bc4efc7b34fd6f7b391874b0d5127

Tu peux trouver la valeur de cette variable pour ton ordi dans le dossier : ~/.dbus/session-dbus/

En revanche, je ne sais pas pourquoi ça fait, si quelqu'un aurait une explication tongue

Dernière modification par Gardouille (Le 25/11/2009, à 18:34)

Hors ligne

#778 Le 25/11/2009, à 19:23

Sallé

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

Merci M'sieur! C'est vrai qu'il date de 2006 ce script et pour la peine je le remets à disposition ici agrémenté de mes commentaires smile

#!/bin/bash
#---------------------------------------------------------------------------------------------------#
#                                                                                                   #
# Description : Random wallpaper script                                                             #
# OS          : Linux                                                                               #
# Licence     : GPL                                                                                 #
# Version     : 0.1.2                                                                               #
# Web site    : http://www.tux-planet.fr/                                                           #
#                                                                                                   #
# Pour utiliser ce script, il faut lui donner les droits d'exécution, installer fcron et lancer la  #
# commande "fcrontab -e".                                                                           #
# Dans le fichier qui s'ouvre, entrer les lignes suivantes :                                        #
#                                                                                                   #
# DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NXLu1t7LAp,guid=265068aeaf419662acc5a74c4b0d6a28 #
# @ 1h /chemin/vers/ce/script                                                                       #
#                                                                                                   #
# La première ligne correspond à ce qu'on trouve dans le fichier ./.dbus/session-dbus/...           #
# La seconde sert à lancer le script toutes les heures. Voir doc.ubuntu-fr.org/fcron pour plus      #
# d'infos sur les options.                                                                          #
#                                                                                                   #
# Une fois terminé, enregister le travail avec Ctrl+o et fermer avec Crtl+x.                        #
# Pas besoin de redémarrer.                                                                         #
#                                                                                                   #
#---------------------------------------------------------------------------------------------------#

# On definit le repertoire contenant les fond d'ecran
REP=/home/utilisateur/blabla

# On definit l'utilisateur qui beneficira du changement de fond d'ecran
USER=utilisateur

# On se positionnne dans ce repertoire
cd $REP

# Creation d'un fichier temporaire contenant la liste des fonds du repertoire
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) > list.tmp

# Creation d'un tableau contenant le nom des fonds
tab=list.tmp
image=($(cat $tab))
nb=${#image[*]}

# On choisi aleatoirement un nombre
chosen=$((RANDOM % nb))

# On recupere l'image
file=${image[$chosen]}

# On met en place le chemin complet de l'image
chemin=$PWD/$file

# On modifie la valeur de la cle du fond d'ecran dans Gconf
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$chemin"

# On efface le fichier temporaire
rm list.tmp

Et voila, encore merci ++

Dernière modification par Sallé (Le 25/11/2009, à 19:25)

Hors ligne

#779 Le 25/11/2009, à 19:43

n3o51

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

Merci sallé pour le script je prends la discussion en cours smile par contre peut on passer par cron ?


Welcome to the real world
________________________________

Hors ligne

#780 Le 25/11/2009, à 20:09

Sallé

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

De rien, ma contribution est très modeste wink
J'ai préféré fcron parce que dans mes recherches, j'ai lu qu'il était mieux que cron.
Donc ça marche aussi mais il me semble que la commande est différente, voici un exemple trouvé sur le site de l'auteur :

 Il serait peut-être plus propre de la mettre dans le "crontab" de l'utilisateur plutôt que de devoir passer par celui du système...

Avec la commande crontab -e

Ajouter la ligne (exemple)
*/10 * * * * /home/remi/bin/wallpaper

En espérant t'avoir aidé smile

++

Edit : apparemment pour cron la commande est

* */1 * * * /chemin/script

pour le changement toutes les heures.

Dernière modification par Sallé (Le 25/11/2009, à 20:18)

Hors ligne

#781 Le 25/11/2009, à 20:15

n3o51

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

Des fois qu'il le fallait absolument smile Merci bien

Bonne soirée ...


Welcome to the real world
________________________________

Hors ligne

#782 Le 26/11/2009, à 11:44

Sallé

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

Arf, encore un souci roll

La variable DBUS_SESSION_BUS_ADDRESS change à chaque démarrage, y-a-t-il un moyen pour contourner ça?

Hors ligne

#783 Le 26/11/2009, à 11:48

Gardouille

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

Arf :s

Chez moi ça fonctionne niquel à chaque fois, il va falloir attendre quelqu'un de plus expérimenté pour répondre là ^^

Hors ligne

#784 Le 26/11/2009, à 15:35

dahu_fou

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

edit : Je me reponds à moi-même,

J'ai trouvé la commande qui va bien :

/usr/lib/indicator-session/gtk-logout-helper --shutdown

Invoqué avec un script dans cron et roule !

Dernière modification par dahu_fou (Le 26/11/2009, à 17:14)


http://nicotux.wordpress.com/

Hors ligne

#785 Le 26/11/2009, à 20:00

n3o51

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

#! /bin/sh
sed "s#^\(export DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#"

Seb donne cette solutions a mettre au demarrage

#! /bin/sh
sed "s#^\(export DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" wp.sh > wp_new.sh 
mv wp_new.sh wp.sh 
chmod +x wp.sh

Par contre toi c'est dans cron du moins fcron que tu met t'as variable

Dernière modification par n3o51 (Le 26/11/2009, à 20:03)


Welcome to the real world
________________________________

Hors ligne

#786 Le 26/11/2009, à 20:54

Sallé

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

Merci pour l'info, mais comme je le disais je n'y connais rien et je ne sais pas comment intégrer cette variable dans fcron hmm
Mais si je comprends bien, entrer le deuxième code que tu donnes dans un script à lancer au démarrage réglerait le problème?

Hors ligne

#787 Le 26/11/2009, à 21:57

n3o51

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

je connais pas fcron

moi j'aurais fait pour cron un truc comme ça

#! /bin/sh
crontab -l > crontab.tmp  
sed "s#^\(export DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" crontab.tmp
cat "crontab.tmp" | crontab -

J'ai pas testé smile


OUARFFFF !!! j'avais laissé le export dans le sed ^^ alors pouvait pas marcher

#!/bin/bash
crontab -l > crontab.tmp  
sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" crontab.tmp > crontab.new
cat "crontab.new" | crontab -

A mettre au demarrage pour cron aprés a vous de voir pour fcron a mon avie fcron n'est simplement qu'un fork de cron je pense je regarderai a l'occasion voir les différences

Dernière modification par n3o51 (Le 26/11/2009, à 22:21)


Welcome to the real world
________________________________

Hors ligne

#788 Le 27/11/2009, à 12:21

Sallé

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

J"ai essayé ce matin de mettre le deuxième code que tu donnes dans un script au démarrage (en remplaçant crontab par fcrontab), je me retrouve avec les deux fichiers "fcrontab.tmp" et "fcrontab.new" dans mon dossier utilisateur, mais pas de changement dans mon fcrontab... bah oui, quand on n'est pas doué hmm

Hors ligne

#789 Le 27/11/2009, à 12:47

n3o51

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

Looooollllllll et bien c'est pas ça mais tu as vu mon code du as copié coller bettement tongue alors que je site  :

moi j'aurais fait pour cron un truc comme ça
J'ai pas testé ;)
A mettre au demarrage pour cron aprés a vous de voir pour fcron a mon avie fcron n'est simplement qu'un fork de cron je pense je regarderai a l'occasion voir les différences

Donc c'est pour cron pas fcron moi j'ai ouvert un script memo pour cron que quelqu'un m'as fait j'ai vu que pour ajouter une infos dans crontab il fallat paire un

cat "crontab.tmp"

pour lire un fichier tmp créer et l'envoyer avec un pipe dans crontab avec un - a la fin qui je sais pas d'ou il sort tongue

| crontab -

ensuite ça un mec le donne sur un topic que j'ai lu

sed "s#^\(export DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" crontab.tmp

J'ai modifié un peut de façon a adapté a la situation

je site OUARFFFF !!! j'avais laissé le export dans le sed ^^ alors pouvait pas marcher

enfin

crontab -l > crontab.tmp

permet de lire crontab avec l'option -l on envoie par redirections avec > dans un fichiers crontab.tmp


biensur j'ai comme toujours commencé par la fin

aprés regarde la doc de fcron pour les etapes si dessus  deux lignes a modifié


Welcome to the real world
________________________________

Hors ligne

#790 Le 27/11/2009, à 12:49

n3o51

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

#!/bin/bash
fcrontab -l > fcrontab.tmp  
sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" fcrontab.tmp > fcrontab.new
cat "fcrontab.new" | fcrontab -

t'as essayé ? roll

C'est vrai que moi avec cron ça fonctionne essaie avec cron sinon et tu enleve fcron fin je sais pas si c'est la meilleur solutions tongue

PS : oui tu as du le faire j'avais lu de travers ^^

Tiens pas compte des mes précedents messages big_smile

Dernière modification par n3o51 (Le 27/11/2009, à 12:51)


Welcome to the real world
________________________________

Hors ligne

#791 Le 27/11/2009, à 13:37

Sallé

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

#!/bin/bash
fcrontab -l > fcrontab.tmp  
sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" fcrontab.tmp > fcrontab.new
cat "fcrontab.new" | fcrontab -

C'est ce que j'ai essayé wink
Je vais voir avec tes explications et la doc de fcron si je m'en sors, sinon j'essaye avec cron.

Edit : tout comme on dit à (f)cron de lancer le script toutes les heures, peut-on lui dire d'importer la variable dbus à chaque démarrage? ce serait plus simple que de passer par un autre script. (Mais vu que personne ne l'a fait, je suppose que la réponse est non roll)

Dernière modification par Sallé (Le 27/11/2009, à 13:42)

Hors ligne

#792 Le 27/11/2009, à 14:10

n3o51

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

AU pire essaie simplement de mettre

Sinon pour faire simple (humour de geek)

essaie en ligne de commande chaque ligne et envoie moi le resultat on va essayer un truc smile a par le shebang biensur smile


Welcome to the real world
________________________________

Hors ligne

#793 Le 27/11/2009, à 14:34

sputnick

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

Pour ajouter une crontab à la volée :

(crontab -l; echo "00 * * * * /mon/script.sh") | crontab -

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#794 Le 27/11/2009, à 14:36

wido

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

+1 n3o51,
tu verras tout de suite ce qui cloche. je ne sais pas ce que tu veux faire (pas tout lu la page) mais fcrontab.tmp tu devrais lui indiquer un dossier non?
/tmp/fcrontab.tmp par exemple?

Hors ligne

#795 Le 27/11/2009, à 14:40

n3o51

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

non c'etait juste pour tester aprés biensur oui un dossier et le supprimer a la fin d'une execution sans erreur

EDIT : merci wido smile

(crontab -l; echo "00 * * * * /mon/script.sh") | crontab -

Merci sputnick smile


par contre il sort d'ou ce crontab avec un - j'ai trouvé ça mais j'ai rien vu dans le man

Dernière modification par n3o51 (Le 27/11/2009, à 14:42)


Welcome to the real world
________________________________

Hors ligne

#796 Le 27/11/2009, à 17:14

Sallé

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

n3o51 a écrit :

AU pire essaie simplement de mettre

Sinon pour faire simple (humour de geek)

essaie en ligne de commande chaque ligne et envoie moi le resultat on va essayer un truc smile a par le shebang biensur smile

C'est normal que ta première phrase se finisse pô?

Voila pour les lignes de commande :

mugz@ubuntu:~$ fcrontab -l > fcrontab.tmp
17:07:18 listing mugz's fcrontab
mugz@ubuntu:~$ sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" fcrontab.tmp > fcrontab.new
mugz@ubuntu:~$ cat "fcrontab.new" | fcrontab -
17:07:36 installing file /tmp/fcr-sC0qOs for user mugz
Modifications will be taken into account at 17h08.
mugz@ubuntu:~$ fcrontab -l
17:07:49 listing mugz's fcrontab
@ 10s /home/mugz/Images/Wallz/script-wallpaper

Quant aux fichiers .tmp et .new, ils ont juste la ligne "@ 10s /home/mugz/Images/Wallz/script-wallpaper" à l'intérieur.
J'ai essayé avec crontab, même résultat hmm


Cool jsais c'que c'est un shebang main'nant (suis passé par wikipédia...) au début j'pensais à une vieille référence à gainsbourg (chais même pô pourquoi roll)

Hors ligne

#797 Le 27/11/2009, à 18:07

n3o51

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

tu es sur d'avoie de base la ligne DBUS dans ta (f)crontab


Welcome to the real world
________________________________

Hors ligne

#798 Le 27/11/2009, à 19:33

Sallé

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

Arf désolé, je l'avais enlevée en pensant que ça ferait conflit hmm
donc maintenant ÇA MARCHE, MERCI n3051 et les autres smile

Je récapitule pour ceux que ça intéresse ; pour avoir un fond d'écran qui change à intervalle régulier, il faut télécharger les scripts suivants, leur donner les droits d'exécution et mettre le deuxième dans les applications au démarrage.

#!/bin/bash
#---------------------------------------------------------------------------------------------------#
#                                                                                                   #
# Description : Random wallpaper script                                                             #
# OS          : Linux                                                                               #
# Licence     : GPL                                                                                 #
# Version     : 0.1.2                                                                               #
# Author      : <effacé>                                #
# Web site    : http://www.tux-planet.fr/                                                           #
#                                                                                                   #
# Pour utiliser ce script, il faut lui donner les droits d'exécution, installer fcron et lancer la  #
# commande "fcrontab -e".                                                                           #
# Dans le fichier qui s'ouvre, entrer les lignes suivantes :                                        #
#                                                                                                   #
# DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NXLu1t7LAp,guid=265068aeaf419662acc5a74c4b0d6a28 #
# @ 1h /chemin/vers/ce/script                                                                       #
#                                                                                                   #
# La première ligne correspond à ce qu'on trouve dans le fichier ./.dbus/session-dbus/...           #
# La seconde sert à lancer le script toutes les heures. Voir doc.ubuntu-fr.org/fcron pour plus      #
# d'infos sur les options.                                                                          #
#                                                                                                   #
# Une fois terminé, enregister le travail avec Ctrl+o et fermer avec Crtl+x.                        #
# Pas besoin de redémarrer.                                                                         #
#                                                                                                   #
#---------------------------------------------------------------------------------------------------#

# On definit le repertoire contenant les fond d'ecran
REP=/home/mugz/Images/Wallz/

# On definit l'utilisateur qui beneficira du changement de fond d'ecran
USER=mugz

# On se positionnne dans ce repertoire
cd $REP

# Creation d'un fichier temporaire contenant la liste des fonds du repertoire
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) > list.tmp

# Creation d'un tableau contenant le nom des fonds
tab=list.tmp
image=($(cat $tab))
nb=${#image[*]}

# On choisi aleatoirement un nombre
chosen=$((RANDOM % nb))

# On recupere l'image
file=${image[$chosen]}

# On met en place le chemin complet de l'image
chemin=$PWD/$file

# On modifie la valeur de la cle du fond d'ecran dans Gconf
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$chemin"

# On efface le fichier temporaire
rm list.tmp
#! /bin/bash
fcrontab -l > /tmp/fcrontab.tmp  
sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" /tmp/fcrontab.tmp > /tmp/fcrontab.new
cat "/tmp/fcrontab.new" | fcrontab -

Encore merci à tous, en particulier n3o51!

Dernière modification par Nuliel (Le 11/01/2024, à 19:52)

Hors ligne

#799 Le 28/11/2009, à 15:27

n3o51

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

fcrontab -l > /tmp/fcrontab.tmp  
sed "s#^\(DBUS_SESSION_BUS_ADDRESS=\).*#\1$DBUS_SESSION_BUS_ADDRESS#" /tmp/fcrontab.tmp > /tmp/fcrontab.new
cat "/tmp/fcrontab.new" | fcrontab -

tu peut inserer ça dans le script a la limite je pense encore plus simple.

Sinon je suis ravie de t'avoir aider smile


Welcome to the real world
________________________________

Hors ligne

#800 Le 28/11/2009, à 16:06

Sallé

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

J'avais essayé l'astuce mais je me retrouvais avec un fcrontab vide hmm
Je réessayerais plus tard, peut-être j'avais mal fait tongue

Edit : ah ben oui, j'avais mal fait! Décidément... roll

Dernière modification par Sallé (Le 28/11/2009, à 19:27)

Hors ligne