#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...)
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
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
#!/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 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
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é
++
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 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
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
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é
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é
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 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
| 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é ?
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
PS : oui tu as du le faire j'avais lu de travers ^^
Tiens pas compte des mes précedents messages
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é
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 )
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 a par le shebang biensur
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/
En 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
(crontab -l; echo "00 * * * * /mon/script.sh") | crontab -
Merci sputnick
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...)
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 a par le shebang biensur
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
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 )
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
donc maintenant ÇA MARCHE, MERCI n3051 et les autres
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
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
Je réessayerais plus tard, peut-être j'avais mal fait
Edit : ah ben oui, j'avais mal fait! Décidément...
Dernière modification par Sallé (Le 28/11/2009, à 19:27)
Hors ligne