Como alterar os papéis de parede de todos os clientes?

13

Como dito antes, estamos executando mais de 500 PCs ubuntu em nossa empresa. Costumávamos definir nossos anúncios da empresa como papel de parede na máquina dos clientes. É difícil alterar papéis de parede em todas essas máquinas uma por uma e também é difícil executar scripts em todas as máquinas através do SSH para alterar o papel de parede. Existe uma maneira de configurar um servidor, como se alterarmos o papel de parede no servidor, ele deve ser efetuado em todas as máquinas clientes. Se for possível, economizará nosso tempo e esforço. Alguém pode ajudar? Desde já, obrigado..

karthick87
fonte
1
Sua empresa possui um site local que só é exibido pelos funcionários? Em caso afirmativo, você não pode adicionar o script ao site; assim, quando o site é carregado, ele também carrega esse script?
freebird 07/07
Esta pergunta precisa ser atualizada para as ferramentas do dconf que o Ubuntu agora usa para planos de fundo.
Jjed

Respostas:

15

Configure um trabalho cron em todas as máquinas que executam um script em que você verifica 1 local específico para novas imagens. Exemplo de script (não testado) com wget e 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

Basicamente, a segunda linha precisa ser alterada para o método usado para carregar manualmente a imagem nas máquinas. E, em seguida, configure cronpara executar esse script para verificar a cada hora ou uma vez por dia por novas imagens.

Você pode até configurá-lo para buscar um script em que esse script seja executado na máquina cliente e, em seguida, busca as imagens e altera o plano de fundo com o gconftool-2. Isso permitiria executar mais do que alterar um plano de fundo.


Você pode criar um trabalho cron com sudo crontab -e. Isso mostrará uma linha semelhante a esta:

# m h  dom mon dow   command

(m minutos, h hora, dom dia do mês, segundo mês, dia da semana da semana) e, por baixo, você pode adicionar ...

0 * * * /path/to/executable

ou

@hourly     /path/to/executable

ter /path/to/executableexecutado a cada hora na hora. Lembre-se: um script que você coloca aqui não entende a variável path, a menos que você a inclua. Você pode colocar isso no topo para incluir $SHELLe $PATH:

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

Caso contrário, você precisa garantir que seu script use nomes de caminhos completos para executar comandos. Mais informações sobre o cron podem ser encontradas no wiki do Ubuntu .

Você também pode usar o /etc/cron.hourlydiretório para colocar um script que é executado a cada hora. Exemplos de tópicos relacionados à última parte: O que há de errado com minha configuração cron.hourly? e Cron.hourly não será executado .

Rinzwind
fonte
Será bom se você atualizar a resposta para adicionar um trabalho cron que verifica novas imagens a cada 1 hora.
precisa saber é o seguinte
4

Pode valer a pena instalar uma estrutura de administração remota como o fantoche . Geralmente, leva algum tempo para instalar e configurá-lo corretamente na sua rede, mas, uma vez lá, é muito fácil copiar arquivos para todas as máquinas (ou apenas um subconjunto delas), executar scripts nelas e tal.

Florian Diesch
fonte
Você pode pls elaborar sua resposta?
karthick87
3

Você pode tornar a configuração do papel de parede obrigatória, o que significa que os usuários não poderão personalizar seu plano de fundo.

No Ubuntu 11.04 e versões anteriores, este comando deve funcionar :

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"

No Ubuntu 11.10 (ou em qualquer sistema GNOME 3), você deve fazer isso com :

  1. Crie um arquivo / etc / dconf / profile / user com o conteúdo:

    user
    site
    
  2. Faça uma configuração padrão criando um arquivo /etc/dconf/db/site.d/background com o conteúdo:

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. E, finalmente, torne o padrão obrigatório, criando /etc/dconf/db/site.d/locks/background com o conteúdo:

    /org/gnome/desktop/background/picture-uri
    
  4. As configurações do dconf precisam ser compiladas para funcionarem, portanto, execute sudo dconf update A primeira vez que você executar isso, precisará reiniciar para ver o efeito. Atualmente, há um erro no qual os usuários ainda verão o seletor de plano de fundo normal; simplesmente não mudará de fundo.

Combine esta solução com algo como fantoche para propagar essa configuração a todos os computadores da sua empresa!

Jeremy Bicha
fonte
Solução interessante. Ele não seria capaz de simplesmente hospedar o papel de parede em um armazenamento compartilhado em algum lugar? Como apenas um site normal, por exemplo? Eu acho que seria uma solução quase perfeita nesse caso, pois isso também facilitaria a troca.
Jo-Erlend Schinstad
@ Jo-Erlend um site normal não funcionaria, pois apenas o arquivo: /// URIs são permitidos. Espero que um servidor de rede esteja bem, desde que o computador já esteja conectado a ele.
Jeremy Bicha 12/09
1

aqui está minha solução para o ubuntu 11.10 (ou qualquer 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"

existem duas partes lógicas. primeiro obtenha papel de parede, segundo conjunto de papel de parede a partir do local baixado. simples!

cyxob
fonte