web-dev-qa-db-fra.com

Comment changer les fonds d'écran de tous les clients?

Comme indiqué précédemment, nous exploitons plus de 500 ordinateurs Ubuntu dans notre société. Nous avions souvent l'habitude de définir nos annonces d'entreprise comme fond d'écran dans la machine des clients. Il est difficile pour nous de changer les fonds d'écran dans toutes ces machines une par une et il est également difficile pour nous d'exécuter un script dans chaque machine via SSH pour changer de fond d'écran. Existe-t-il un moyen de configurer un serveur comme si nous changions le papier peint sur le serveur, il devrait être effectué sur tous les ordinateurs clients. Si cela est possible, nous économiserons du temps et des efforts. Quelqu'un peut-il aider? Merci d'avance..

13
karthick87

Configurez un travail cron sur toutes les machines qui exécutent un script dans lequel vous cochez 1 emplacement spécifique pour de nouvelles images. Exemple de script (non testé) avec wget et ftp:

#!/bin/bash
wget -N -r -nH --cut-dirs=2 -t 180 -P /tmp ftp://user:[email protected]/dir/backgroundimage.gif
gconftool-2 --type string --set /desktop/gnome/background/picture_filename /tmp/backgroundimage.gif

Fondamentalement, la deuxième ligne doit être modifiée en fonction de la méthode utilisée pour charger manuellement l'image sur les ordinateurs. Et puis configurez cron pour exécuter ce script afin de vérifier chaque heure ou une fois par jour les nouvelles images.

Vous pouvez même le configurer pour extraire un script où ce script est exécuté sur la machine cliente, puis il récupère les images et modifie l'arrière-plan avec gconftool- 2 Cela vous permettrait d’exécuter plus que de changer un arrière-plan.


Vous pouvez créer un travail cron avec Sudo crontab -e. Cela montrera une ligne semblable à ceci:

# m h  dom mon dow   command

(m minutes, h heure, jour du mois, lundi, jour de la semaine) et dessous vous pouvez ajouter ...

0 * * * /path/to/executable

ou

@hourly     /path/to/executable

d'avoir /path/to/executable exécuté toutes les heures. Remarque: un script que vous avez inséré ici ne comprend pas la variable de chemin à moins que vous ne l'incluiez. Vous pouvez mettre ceci en haut pour inclure $Shell et $PATH:

Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Sinon, vous devez vous assurer que votre script utilise des noms de chemin complets pour exécuter des commandes. Plus d'informations sur cron peuvent être trouvées sur le buntu wiki .

Vous pouvez également utiliser le répertoire /etc/cron.hourly pour y placer un script à exécuter toutes les heures. Exemples de sujets concernant la dernière partie: Qu'est-ce qui ne va pas dans ma configuration cron.hourly? et Cron.hourly ne s'exécute pas .

15
Rinzwind

Cela peut valoir la peine de installer un framework d’administrateur distant tel que puppet . Il faut généralement un certain temps pour l’installer et le configurer correctement pour votre réseau, mais une fois que c’est là, il est assez facile de copier des fichiers sur toutes les machines (ou tout simplement un sous-ensemble), d’exécuter des scripts, etc.

4
Florian Diesch

Vous pouvez rendre le paramètre de papier peint obligatoire, ce qui signifie que les utilisateurs ne pourront pas personnaliser leur arrière-plan.

Dans Ubuntu 11.04 et les versions antérieures, cette commande devrait travail :

Sudo gconftool-2 --direct --config-source \
xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set \
/desktop/gnome/background/picture_filename \ 
"/usr/share/backgrounds/cosmos/blue-marble-west.jpg"

Dans Ubuntu 11.10 (ou n’importe quel système GNOME 3), vous devriez pouvoir le faire avec :

  1. Créez un fichier/etc/dconf/profile/user avec le contenu:

    user
    site
    
  2. Définissez un paramètre par défaut en créant un fichier /etc/dconf/db/site.d/background avec le contenu:

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. Et enfin, rendez la valeur par défaut obligatoire en créant /etc/dconf/db/site.d/locks/background avec le contenu:

    /org/gnome/desktop/background/picture-uri
    
  4. les paramètres dconf doivent être compilés pour fonctionner afin d'exécuter Sudo dconf update la première fois que vous exécutez cette opération, vous devrez redémarrer pour voir l'effet. Actuellement, il existe un bug où les utilisateurs verront toujours le sélecteur d'arrière-plan normal; cela ne changera pas réellement le fond.

Combinez cette solution avec quelque chose comme une marionnette pour propager ce paramètre à tous les ordinateurs de votre entreprise!

3
Jeremy Bicha

voici ma solution pour Ubuntu 11.10 (ou tout système GNOME 3):

#!/bin/bash
wget -N -r -nH --cut-dirs=2 -t 180 -P /tmp ftp://ozolniekuvsk.lv/public/foni/ozvsk.jpg
gsettings set org.gnome.desktop.background picture-uri "file:///tmp/ozvsk.jpg"

il y a deux parties logiques. obtenir le papier peint en premier, puis le deuxième fond d'écran à partir de l'emplacement téléchargé. Facile!

1
cyxob