Wie ändere ich die Hintergrundbilder aller Clients?

Wie ändere ich die Hintergrundbilder aller Clients?

Wie bereits erwähnt, betreiben wir in unserem Unternehmen mehr als 500 Ubuntu-PCs. Oft legen wir unsere Unternehmensanzeigen als Hintergrundbild auf den Client-Rechnern fest. Es ist für uns schwierig, die Hintergrundbilder auf all diesen Rechnern einzeln zu ändern, und es ist auch schwierig für uns, auf jedem Rechner über SSH ein Skript zum Ändern des Hintergrundbilds auszuführen. Gibt es eine Möglichkeit, einen Server so einzurichten, dass, wenn wir das Hintergrundbild auf dem Server ändern, dies auf allen Client-Rechnern wirksam wird? Wenn dies möglich ist, spart es uns Zeit und Mühe. Kann jemand helfen? Vielen Dank im Voraus.

Antwort1

Richten Sie einCron-Jobauf allen Maschinen, die ein Skript ausführen, mit dem Sie an einer bestimmten Stelle nach neuen Bildern suchen. Beispielskript (ungetestet) mit wget und 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

Grundsätzlich muss die zweite Zeile in die Methode geändert werden, mit der Sie das Bild manuell auf die Maschinen laden. Richten Sie crondieses Skript dann so ein, dass es stündlich oder einmal täglich nach neuen Bildern sucht.

Sie können es sogar so einrichten, dass es eineSkriptwo dieses Skript auf dem Client-Rechner ausgeführt wird und dann die Bilder abruft und den Hintergrund mit gconftool-2 ändert. Dies würde Ihnen ermöglichen, mehr auszuführen, als nur einen Hintergrund zu ändern.


Sie können einen Cron-Job mit erstellen sudo crontab -e. Dieser zeigt eine Zeile ähnlich dieser:

# m h  dom mon dow   command

(m Minuten, h Stunden, dom Tag des Monats, mon Monat, dow Tag der Woche) und darunter könnten Sie hinzufügen ...

0 * * * /path/to/executable

oder

@hourly     /path/to/executable

jede Stunde zur vollen Stunde ausgeführt werden /path/to/executable. Beachten Sie: Ein Skript, das Sie hier einfügen, versteht die Pfadvariable nicht, wenn Sie sie nicht einschließen. Sie können dies oben einfügen, um Folgendes $SHELLeinzuschließen $PATH:

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

Andernfalls müssen Sie sicherstellen, dass Ihr Skript vollständige Pfadnamen verwendet, um Befehle auszuführen. Weitere Informationen zu cron finden Sie auf derUbuntu-Wiki.

Sie können das /etc/cron.hourlyVerzeichnis auch verwenden, um dort ein Skript abzulegen, das stündlich ausgeführt wird. Beispielthemen zum letzten Teil:Was ist falsch an meiner cron.hourly-Konfiguration?UndCron.hourly läuft nicht.

Antwort2

Es kann sich lohnen,Installieren Sie ein Remote-Admin-Framework wie Puppet. Normalerweise dauert es eine Weile, bis es richtig installiert und für Ihr Netzwerk konfiguriert ist, aber wenn es erst einmal installiert ist, ist es ganz einfach, Dateien auf alle (oder nur einen Teil) der Maschinen zu kopieren, Skripte darauf auszuführen und so weiter.

Antwort3

Sie können die Hintergrundbildeinstellung obligatorisch machen, was bedeutet, dass Benutzer ihren Hintergrund nicht anpassen können.

In Ubuntu 11.04 und früher sollte dieser Befehlarbeiten:

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"

In Ubuntu 11.10 (oder jedem GNOME 3-System) sollten Sie dies tun könnenmit:

  1. Erstellen Sie eine Datei /etc/dconf/profile/user mit dem Inhalt:

    user
    site
    
  2. Nehmen Sie eine Standardeinstellung vor, indem Sie eine Datei /etc/dconf/db/site.d/background mit dem folgenden Inhalt erstellen:

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. Und machen Sie schließlich die Standardeinstellung verbindlich, indem Sie /etc/dconf/db/site.d/locks/background mit dem folgenden Inhalt erstellen:

    /org/gnome/desktop/background/picture-uri
    
  4. dconf-Einstellungen müssen kompiliert werden, damit sie funktionieren. Führen Sie sie daher aus. Wenn sudo dconf update Sie dies zum ersten Mal ausführen, müssen Sie neu starten, um den Effekt zu sehen. Derzeit gibt es eineInsektwo den Benutzern weiterhin die normale Hintergrundauswahl angezeigt wird; der Hintergrund wird jedoch nicht geändert.

Kombinieren Sie diese Lösung mit etwas wie Puppet, um diese Einstellung auf allen Computern in Ihrem Unternehmen zu verbreiten!

Antwort4

Befolgen Sie diese fünf Schritte:

  1. Installieren Sie das clustersshTool in CentOS/Ubuntu, um die Remotesitzung mehrerer Systeme zu erhaltenmehr über clusterssh erfahren

  2. Erstellen Sie eine Datei mit dem Namen clusterssh.shim Stammverzeichnis.
    Beispiel:vim /root/.clusterssh.sh

    #!/bin/bash
    cssh  -l <username> <ip addresses to connnect>
    :wq
    

    Sobald Sie die Shell mehrerer Linux-Hosts erhalten.
    Melden Sie sich als Benutzer an.

  3. Kopieren Sie die Hintergrundbilddatei mit dem Root-Login.
    Beispiel:

    scp [email protected]:/root/Downloads/wallpaper.jpg(Source)  /home (Destination)
    

    Sie werden zur Eingabe des Passworts aufgefordert. Geben Sie das Passwort des Quellsystems ein.

  4. Führen Sie diesen Befehl aus, um den Fehler „Kann nicht angezeigt werden“ zu beheben.

    $export DISPLAY=:0
    

    oder

    $export DISPLAY=:1.0
    
  5. Führen Sie den folgenden Befehl vom Benutzer-Login aus, in dem wir das Hintergrundbild festlegen müssen

    pcmanfm  --set-wallpaper=”/home/wallaper.jpg”
    

    Falls der Benutzer das Hintergrundbild nicht festlegen darf, müssen wir diesem Benutzer die Sudo-Berechtigung erteilen. Verwenden Sie dazu das folgende Verfahren.

    Gehen Sie zu #nano /etc/sudoersund geben Sie unterhalb von root ein

    Username ALL=/usr/bin/pcmanfm #command location
    

UndBoom!Hier bekommen Sie das Hintergrundbild auf einen Schlag auf mehrere Ihrer Systeme.

verwandte Informationen