
如同之前所說,我們公司運行著 500 多台 ubuntu PC。我們經常將公司廣告設定為客戶端電腦中的壁紙。我們很難一一更改所有這些機器中的壁紙,也很難透過 SSH 在每台機器中執行腳本來更改壁紙。有沒有一種方法可以設定伺服器,就像我們更改伺服器中的桌布一樣,它應該在所有客戶端電腦中生效。如果可以的話,那將會節省我們的時間和精力。有人可以幫忙嗎?先致謝..
答案1
設定一個計劃任務在所有執行腳本的電腦上,您可以在其中檢查 1 個特定位置是否有新影像。使用 wget 和 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
基本上,第二行需要更改為您用於手動將圖像載入到機器的方法。然後設定cron
執行此腳本以每小時或每天檢查一次是否有新圖像。
您甚至可以將其設定為獲取腳本該腳本在客戶端電腦上執行,然後獲取映像並使用 gconftool-2 更改背景。這將允許您執行比更改背景更多的操作。
您可以使用 建立 cron 作業sudo crontab -e
。這將顯示類似於此的行:
# m h dom mon dow command
(m 分鐘,h 小時,dom 月中的某天,mon 月,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 維基。
您也可以使用該/etc/cron.hourly
目錄放置一個每小時執行一次的腳本。關於最後一部分的範例主題:我的 cron.hourly 配置有什麼問題?和Cron.hourly 不會運行。
答案2
也許值得安裝遠端管理框架,例如 puppet。通常需要一些時間才能為您的網路正確安裝和配置它,但是一旦安裝完成,就可以輕鬆地將檔案複製到所有電腦(或只是其中的一部分),在它們上執行腳本等。
答案3
您可以強制進行壁紙設置,這意味著用戶將無法自訂其背景。
在 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 之類的東西結合起來,將此設定傳播到公司中的所有電腦!
答案4
請遵循以下五個步驟:
centos/ubuntu中安裝
clusterssh
工具取得多個系統的遠端會話閱讀有關 clustersh 的更多信息clusterssh.sh
在根目錄中建立一個名為的檔案。
例如 :vim /root/.clusterssh.sh
#!/bin/bash cssh -l <username> <ip addresses to connnect> :wq
一旦你獲得了多個linux主機的shell。
登入用戶。使用root登入複製壁紙檔案
例如:scp [email protected]:/root/Downloads/wallpaper.jpg(Source) /home (Destination)
它會提示輸入密碼,給出來源系統的密碼
運行此命令以克服“無法顯示錯誤”
$export DISPLAY=:0
或者
$export DISPLAY=:1.0
從用戶登入執行以下命令,我們需要在其中設定壁紙
pcmanfm --set-wallpaper=”/home/wallaper.jpg”
如果不允許使用者設定壁紙,我們需要向該使用者授予 sudo 權限,請使用下列程序。
轉到
#nano /etc/sudoers
root 並在其下方輸入Username ALL=/usr/bin/pcmanfm #command location
和繁榮!在這裡,您可以一鍵獲取多個系統上的壁紙。