Come cambiare gli sfondi di tutti i client?


13

Come detto prima, nella nostra azienda sono in esecuzione oltre 500 PC Ubuntu. Spesso impostavamo gli annunci della nostra azienda come sfondo nella macchina dei clienti. È difficile per noi cambiare gli sfondi in tutte queste macchine una per una e anche per noi è difficile eseguire script in ogni macchina tramite SSH per cambiare lo sfondo. C'è un modo per configurare un server come se cambiamo lo sfondo nel server che dovrebbe essere effettuato su tutte le macchine client. Se è possibile, ci farà risparmiare tempo e fatica. Qualcuno può aiutare? Grazie in anticipo..


1
La tua azienda ha un sito locale che viene visualizzato solo dai dipendenti? In tal caso, non è possibile aggiungere lo script nel sito, quindi quando viene caricato il sito viene caricato anche quello script?
freebird,

Questa domanda deve essere aggiornata per gli strumenti di dconf che Ubuntu ora utilizza per gli sfondi.
Jjed,

Risposte:


15

Imposta un processo cron su tutte le macchine che eseguono uno script in cui controlli 1 posto specifico per nuove immagini. Script di esempio (non testato) con wget e ftp:

#!/bin/bash
wget -N -r -nH --cut-dirs=2 -t 180 -P /tmp ftp://user:password@name.remoteserver.com/dir/backgroundimage.gif
gconftool-2 --type string --set /desktop/gnome/background/picture_filename /tmp/backgroundimage.gif

Fondamentalmente la seconda riga deve essere modificata al metodo utilizzato per caricare manualmente l'immagine sulle macchine. E quindi impostare cronper eseguire questo script per controllare ogni ora o una volta al giorno per nuove immagini.

Potresti anche impostarlo per recuperare uno script in cui quello script viene eseguito sul computer client e quindi recupera le immagini e cambia lo sfondo con gconftool-2. Ciò ti consentirebbe di eseguire più che cambiare uno sfondo.


È possibile creare un processo cron con sudo crontab -e. Questo mostrerà una linea simile a questa:

# m h  dom mon dow   command

(m minuti, h ora, dom dom del mese, lun mese, dow giorno della settimana) e al di sotto puoi aggiungere ...

0 * * * /path/to/executable

o

@hourly     /path/to/executable

avere /path/to/executablecorso ogni ora all'ora. Intendiamoci: uno script inserito qui non comprende la variabile path a meno che non la includiate. Puoi metterlo in alto per includere $SHELLe $PATH:

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

Altrimenti è necessario assicurarsi che lo script utilizzi i nomi di percorso completi per eseguire i comandi. Maggiori informazioni su cron sono disponibili sul wiki di Ubuntu .

Puoi anche usare la /etc/cron.hourlydirectory per mettere lì uno script che viene eseguito ogni ora. Argomenti di esempio relativi all'ultima parte: Cosa c'è di sbagliato nella mia configurazione cron.hourly? e Cron.hourly non funzionerà .


Sarà bello se aggiorni la risposta per l'aggiunta di cron job che verifica la presenza di nuove immagini ogni 1 ora.
karthick87,


3

È possibile rendere obbligatoria l'impostazione dello sfondo, il che significa che gli utenti non saranno in grado di personalizzare il proprio sfondo.

In Ubuntu 11.04 e precedenti, questo comando dovrebbe funzionare :

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 (o qualsiasi sistema GNOME 3), dovresti essere in grado di farlo con :

  1. Crea un file / etc / dconf / profile / user con il contenuto:

    user
    site
    
  2. Effettuare un'impostazione predefinita creando un file /etc/dconf/db/site.d/background con il contenuto:

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. E infine rendere obbligatorio il default creando /etc/dconf/db/site.d/locks/background con i contenuti:

    /org/gnome/desktop/background/picture-uri
    
  4. Le impostazioni di dconf devono essere compilate per funzionare, quindi esegui sudo dconf update La prima volta che esegui questo, dovrai riavviare per vedere l'effetto. Attualmente, c'è un bug in cui gli utenti vedranno ancora il normale selettore Background; semplicemente non cambierà effettivamente lo sfondo.

Combina questa soluzione con qualcosa come un pupazzo per propagare questa impostazione a tutti i computer della tua azienda!


Soluzione interessante. Non sarebbe in grado di ospitare semplicemente lo sfondo su un archivio condiviso da qualche parte? Come un normale sito Web, ad esempio? Penso che sarebbe una soluzione quasi perfetta in questo caso, dal momento che renderebbe anche facile il passaggio.
Jo-Erlend Schinstad,

@ Jo-Erlend un normale sito Web non funzionerebbe poiché sono consentiti solo file: /// URI. Mi aspetto che un server di rete vada bene anche se il computer è già collegato ad esso.
Jeremy Bicha,

1

ecco la mia soluzione per Ubuntu 11.10 (o qualsiasi sistema 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"

ci sono due parti logiche. prima ottieni lo sfondo, secondo imposta lo sfondo dalla posizione scaricata. semplice!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.