
Como dito antes, estamos executando mais de 500 PCs Ubuntu em nossa empresa. Freqüentemente, costumávamos definir os anúncios de nossa empresa como papel de parede na máquina dos clientes. É difícil para nós mudarmos os papéis de parede em todas essas máquinas, uma por uma, e também é difícil para nós executar scripts em todas as máquinas através do SSH para mudar o papel de parede. Existe uma maneira de configurar um servidor como se mudarmos o papel de parede no servidor, isso deve ser efetuado em todas as máquinas dos clientes. Se for possível, economizará nosso tempo e esforço. Alguém pode ajudar? Desde já, obrigado..
Responder1
Configurar umtarefa cronem todas as máquinas que executa um script onde 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 2ª linha precisa ser alterada para o método que você usa para carregar manualmente a imagem nas máquinas. E então configure cron
para executar este script para verificar a cada hora ou uma vez por dia se há novas imagens.
Você pode até configurá-lo para buscar umroteiroonde esse script é executado na máquina cliente e então busca as imagens e altera o plano de fundo com gconftool-2. Isso permitiria que você executasse mais do que alterar um plano de fundo.
Você pode criar um cron job 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, mon mês, dow dia da semana) e abaixo dele você pode adicionar ...
0 * * * /path/to/executable
ou
@hourly /path/to/executable
ter /path/to/executable
corrido de hora em 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 $SHELL
e $PATH
:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Caso contrário, você precisa ter certeza de que seu script usa nomes de caminho completos para executar comandos. Mais informações sobre o cron podem ser encontradas noWiki do Ubuntu.
Você também pode usar o /etc/cron.hourly
diretório para colocar um script que é executado a cada hora. Exemplos de tópicos referentes à última parte:O que há de errado com minha configuração cron.hourly?eCron.hourly não será executado.
Responder2
Pode valer a penainstale uma estrutura de administração remota como o fantoche. Geralmente leva algum tempo para instalá-lo e configurá-lo corretamente para 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 assim por diante.
Responder3
Você pode tornar obrigatória a configuração do papel de parede, o que significa que os usuários não poderão personalizar seu plano de fundo.
No Ubuntu 11.04 e anteriores, este comando devetrabalhar:
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 conseguir fazer issocom:
Crie um arquivo /etc/dconf/profile/user com o conteúdo:
user site
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'
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
As configurações do dconf precisam ser compiladas para funcionar, então execute.
sudo dconf update
Na primeira vez que você executar isso, será necessário reinicializar para ver o efeito. Atualmente, há umerroonde os usuários ainda verão o seletor de plano de fundo normal; simplesmente não mudará o plano de fundo.
Combine esta solução com algo como fantoche para propagar esta configuração para todos os computadores da sua empresa!
Responder4
Siga estas cinco etapas:
Instale a
clusterssh
ferramenta em centos/ubuntu para obter a sessão remota de vários sistemasleia mais sobre clustersshCrie um arquivo nomeado
clusterssh.sh
no diretório raiz.
Por exemplo :vim /root/.clusterssh.sh
#!/bin/bash cssh -l <username> <ip addresses to connnect> :wq
Depois de obter o shell de vários hosts Linux.
Faça login no usuário.Copie o arquivo de papel de parede usando login root
. Por exemplo:scp [email protected]:/root/Downloads/wallpaper.jpg(Source) /home (Destination)
Ele solicitará a senha, fornecerá a senha do sistema de origem
Execute este comando para superar o “Erro não é possível exibir”
$export DISPLAY=:0
ou
$export DISPLAY=:1.0
Execute o comando abaixo a partir do login do usuário no qual precisamos definir o papel de parede
pcmanfm --set-wallpaper=”/home/wallaper.jpg”
Caso o usuário não tenha permissão para definir o papel de parede, precisamos dar permissão sudo a esse usuário, utilize o processo abaixo.
Vá para
#nano /etc/sudoers
e abaixo da raiz, entreUsername ALL=/usr/bin/pcmanfm #command location
EEstrondo!aqui você obtém o papel de parede em seus vários sistemas de uma só vez.