如前所述,我们在公司中运行着500多台ubuntu PC。通常,我们经常将公司广告设置为客户计算机中的墙纸。我们很难一一更改所有这些机器中的墙纸,并且我们也很难通过SSH在每台机器中执行脚本来更改墙纸。有没有一种方法可以设置服务器,例如,如果我们更改服务器中的墙纸,则应在所有客户端计算机中生效。如果有可能,它将节省我们的时间和精力。有人可以帮忙吗?提前致谢..
如前所述,我们在公司中运行着500多台ubuntu PC。通常,我们经常将公司广告设置为客户计算机中的墙纸。我们很难一一更改所有这些机器中的墙纸,并且我们也很难通过SSH在每台机器中执行脚本来更改墙纸。有没有一种方法可以设置服务器,例如,如果我们更改服务器中的墙纸,则应在所有客户端计算机中生效。如果有可能,它将节省我们的时间和精力。有人可以帮忙吗?提前致谢..
Answers:
在执行脚本的所有计算机上设置cron作业,您在其中检查1个特定位置的新图像。带有wget和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
基本上,第二行需要更改为用于将图像手动加载到计算机的方法。然后设置cron
执行该脚本以每小时或每天一次检查新图像。
您甚至可以将其设置为获取脚本,在客户端计算机上执行该脚本,然后使用gconftool-2获取图像并更改背景。除了更改背景之外,这还可以执行更多操作。
您可以使用创建一个cron作业sudo crontab -e
。这将显示类似于以下内容的行:
# m h dom mon dow command
(m分钟,h小时,每月dom天,星期一,dow日),并在其下方可以添加...
0 * * * /path/to/executable
要么
@hourly /path/to/executable
已经/path/to/executable
在小时运行每隔一小时。请注意:您在此处输入的脚本除非包含路径变量,否则将无法理解。您可以将其放在顶部以包括$SHELL
和$PATH
:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
否则,您需要确保脚本使用完整路径名来执行命令。有关cron的更多信息,请参见Ubuntu Wiki。
您还可以使用/etc/cron.hourly
目录在该目录中放置一个每小时运行一次的脚本。关于最后一部分的示例主题:cron.hourly配置有什么问题?而Cron.hourly将无法运行。
安装像puppet这样的远程管理框架可能是值得的。通常,需要花费一些时间来为网络正确安装和配置它,但是一旦安装完成,就很容易将文件复制到所有计算机(或其中的一部分),并在这些计算机上运行脚本。
您可以将墙纸设置设为强制性,这意味着用户将无法自定义其背景。
在Ubuntu 11.04和更早版本中,此命令应该有效:
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"
在Ubuntu 11.10(或任何GNOME 3系统),你应该能够做到这一点有:
创建一个文件/ etc / dconf / profile / user,其内容为:
user
site
通过创建一个包含以下内容的文件/etc/dconf/db/site.d/background进行默认设置:
[org/gnome/desktop/background]
picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
最后,通过使用以下内容创建/etc/dconf/db/site.d/locks/background来使默认设置为强制性的:
/org/gnome/desktop/background/picture-uri
dconf设置需要进行编译才能正常运行sudo dconf update
。第一次运行此命令时,需要重新启动才能看到效果。当前,存在一个错误,用户仍然可以看到普通的背景选择器。它实际上并不会改变背景。
将此解决方案与诸如puppet之类的东西结合使用,可以将该设置推广到公司中的所有计算机!