すべてのクライアントの壁紙を変更するには?


13

前に述べたように、当社では500台以上のubuntu PCを実行しています。多くの場合、会社の広告をクライアントマシンの壁紙として設定していました。これらすべてのマシンの壁紙を1つずつ変更することは困難です。また、SSHを介してすべてのマシンでスクリプトを実行して壁紙を変更することは困難です。サーバー内の壁紙を変更した場合に、すべてのクライアントマシンで影響を受けるようにサーバーをセットアップする方法はありますか。可能であれば、時間と労力を節約できます。誰でも助けることができますか?前もって感謝します..


1
会社には、従業員のみが表示するローカルサイトがありますか?もしそうなら、サイトにスクリプトを追加できないので、サイトが読み込まれると、そのスクリプトも読み込まれますか?
フリーバード

この質問は、Ubuntuがバックグラウンドで使用するdconfツール用に更新する必要があります。
ジェド

回答:


15

新しいイメージの特定の場所を1つチェックするスクリプトを実行するすべてのマシンでcronジョブをセットアップします。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

基本的に、2行目は、手動でイメージをマシンにロードするために使用する方法に変更する必要があります。そして、cronこのスクリプトを実行して、新しいイメージを1時間ごとまたは1日に1回チェックするように設定します。

クライアントマシンで実行されるスクリプトを取得するように設定することもできます。そのスクリプトは、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ディレクトリを使用して、1時間ごとに実行されるスクリプトをそこに配置することもできます。最後の部分に関するトピックの例:cron.hourlyの構成の何が問題になっていますか?そしてCron.hourlyは実行されません


1時間ごとに新しいイメージをチェックするcronジョブを追加するための回答を更新すると便利です。
karthick87

4

puppetのようなリモート管理フレームワークインストールする価値があるかもしれません。通常、ネットワーク用に適切にインストールして構成するには時間がかかりますが、いったんファイルがコピーされると、すべてのマシン(またはそれらのサブセット)にファイルをコピーしたり、スクリプトを実行したりすることが非常に簡単になります。


あなたの答えを詳しく説明してもらえますか?
karthick87

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のシステム)では、あなたはこれを行うことができるはず

  1. 次の内容のファイル/ etc / dconf / profile / userを作成します。

    user
    site
    
  2. 内容を含むファイル/etc/dconf/db/site.d/backgroundを作成して、デフォルト設定を行います。

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. 最後に、内容を含む/etc/dconf/db/site.d/locks/backgroundを作成してデフォルトを必須にします。

    /org/gnome/desktop/background/picture-uri
    
  4. 動作するようにdconf設定をコンパイルする必要がありますので、sudo dconf update これを最初に実行するときは、効果を確認するために再起動する必要があります。現在、ユーザーには通常の背景選択ツールが引き続き表示されるバグがあります。実際に背景を変更することはありません。

この設定をパペットのようなものと組み合わせて、この設定を社内のすべてのコンピューターに伝達します!


興味深いソリューション。彼はどこかで共有ストレージに壁紙を簡単にホストできませんか?たとえば、通常のウェブサイトのように?この場合、切り替えが簡単になるため、これはほぼ完璧なソリューションになると思います。
ジョーエルレンドシンスタッド

@ Jo-Erlendは、file:/// URIのみが許可されているため、通常のWebサイトは機能しません。ネットワークサーバーは、コンピューターが既に接続されている限りは問題ないと思います。
ジェレミービチャ

1

ここに、ubuntu 11.10(または任意の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"

2つの論理的な部分があります。最初に壁紙を取得し、次にダウンロードした場所から壁紙を設定します。シンプル!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.