
Como dije antes, utilizamos más de 500 PC con Ubuntu en nuestra empresa. A menudo solíamos configurar los anuncios de nuestra empresa como fondo de pantalla en la máquina del cliente. Es difícil para nosotros cambiar los fondos de pantalla en todas estas máquinas una por una y también nos resulta difícil ejecutar un script en cada máquina a través de SSH para cambiar el fondo de pantalla. ¿Hay alguna manera de configurar un servidor? Si cambiamos el fondo de pantalla en el servidor, debería realizarse en todas las máquinas de los clientes. Si es posible, nos ahorrará tiempo y esfuerzo. ¿Alguien puede ayudar? Gracias de antemano..
Respuesta1
Configurar untrabajo cronen todas las máquinas que ejecuta un script donde verifica 1 lugar específico para obtener nuevas imágenes. Script de muestra (no probado) con wget y 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
Básicamente, la segunda línea debe modificarse según el método que utiliza para cargar manualmente la imagen en las máquinas. Y luego configúrelo cron
para ejecutar este script para verificar cada hora o una vez al día si hay nuevas imágenes.
Incluso podrías configurarlo para buscar unguiondonde ese script se ejecuta en la máquina cliente y luego recupera las imágenes y cambia el fondo con gconftool-2. Esto le permitiría ejecutar más que cambiar un fondo.
Puedes crear un trabajo cron con sudo crontab -e
. Esto mostrará una línea similar a esta:
# m h dom mon dow command
(m minutos, h hora, dom día del mes, mon mes, dow día de la semana) y debajo podrías agregar...
0 * * * /path/to/executable
o
@hourly /path/to/executable
haber /path/to/executable
corrido cada hora en punto. Eso sí: un script que introduzca aquí no comprende la variable de ruta a menos que la incluya. Puedes poner esto en la parte superior para incluir $SHELL
y $PATH
:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
De lo contrario, debe asegurarse de que su secuencia de comandos utilice nombres de ruta completos para ejecutar comandos. Puede encontrar más información sobre cron enwiki de ubuntu.
También puede usar el /etc/cron.hourly
directorio para colocar allí un script que se ejecute cada hora. Temas de ejemplo sobre la última parte:¿Qué pasa con mi configuración cron.hourly?yCron.hourly no se ejecuta.
Respuesta2
Puede que valga la penainstalar un marco de administración remota como Puppet. Por lo general, lleva algún tiempo instalarlo y configurarlo correctamente para su red, pero una vez que está allí, es bastante fácil copiar archivos a todas las máquinas (o solo a un subconjunto de ellas), ejecutar scripts en ellas y demás.
Respuesta3
Puede hacer que la configuración del fondo de pantalla sea obligatoria, lo que significa que los usuarios no podrán personalizar su fondo.
En Ubuntu 11.04 y versiones anteriores, este comando deberíatrabajar:
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"
En Ubuntu 11.10 (o cualquier sistema GNOME 3), deberías poder hacer estocon:
Cree un archivo /etc/dconf/profile/user con el contenido:
user site
Realice una configuración predeterminada creando un archivo /etc/dconf/db/site.d/background con el contenido:
[org/gnome/desktop/background] picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
Y finalmente haga que el valor predeterminado sea obligatorio creando /etc/dconf/db/site.d/locks/background con el contenido:
/org/gnome/desktop/background/picture-uri
La configuración de dconf debe compilarse para funcionar, así que ejecute
sudo dconf update
La primera vez que ejecute esto, deberá reiniciar para ver el efecto. Actualmente, hay unbichodonde los usuarios seguirán viendo el selector de fondo normal; simplemente no cambiará el fondo.
Combine esta solución con algo como Puppet para propagar esta configuración a todas las computadoras de su empresa.
Respuesta4
Siga estos cinco pasos:
Instale la
clusterssh
herramienta en centos/ubuntu para obtener la sesión remota de múltiples sistemasleer más sobre clustersshCree un archivo nombrado
clusterssh.sh
en el directorio raíz.
Por ejemplo :vim /root/.clusterssh.sh
#!/bin/bash cssh -l <username> <ip addresses to connnect> :wq
Una vez que obtenga el shell de varios hosts de Linux.
Inicie sesión como usuario.Copie el archivo de fondo de pantalla usando el inicio de sesión raíz
. Por ejemplo:scp [email protected]:/root/Downloads/wallpaper.jpg(Source) /home (Destination)
Le solicitará una contraseña, proporcione la contraseña del sistema fuente.
Ejecute este comando para superar el error "No se puede mostrar"
$export DISPLAY=:0
o
$export DISPLAY=:1.0
Ejecute el siguiente comando desde el inicio de sesión del usuario en el que necesitamos configurar el fondo de pantalla
pcmanfm --set-wallpaper=”/home/wallaper.jpg”
En caso de que el usuario no tenga permiso para configurar el fondo de pantalla, debemos otorgarle permiso sudo a ese usuario; utilice el proceso siguiente.
Vaya a
#nano /etc/sudoers
y debajo de la raíz, ingreseUsername ALL=/usr/bin/pcmanfm #command location
Y¡Auge!aquí obtienes el fondo de pantalla en tus múltiples sistemas de una sola vez.