Tüm müşterilerin duvar kağıtları nasıl değiştirilir?


13

Daha önce de söylediğimiz gibi firmamızda 500'den fazla ubuntu bilgisayarı çalıştırıyoruz. Genellikle şirket reklamlarımızı müşteri makinesinde duvar kağıdı olarak ayarlardık. Tüm bu makinelerde duvar kağıtlarını tek tek değiştirmek bizim için zordur ve aynı zamanda duvar kağıdını değiştirmek için SSH aracılığıyla her makinede komut dosyası yürütmemiz zordur. Sunucudaki duvar kağıdını değiştirirsek, tüm istemciler makinede etkilenmesi gibi bir sunucu kurmanın bir yolu var mı? Mümkünse, zaman ve çabadan tasarruf edecektir. Biri yardım edebilir mi? Şimdiden teşekkürler..


1
Şirketinizde yalnızca çalışanlar tarafından görüntülenen yerel bir site var mı? Eğer öyleyse, komut dosyasını siteye ekleyemezsiniz, böylece site yüklendiğinde bu komut dosyasını da yükler?
freebird

Ubuntu'nun arka planlar için kullandığı dconf araçları için bu sorunun güncellenmesi gerekiyor.
Jjed

Yanıtlar:


15

Yeni resimler için 1 belirli yeri kontrol ettiğiniz bir komut dosyası yürüten tüm makinelerde bir cron işi ayarlayın . Wget ve ftp ile örnek (denenmemiş) komut dosyası:

#!/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

Temel olarak, 2. satırın görüntüyü makinelere manuel olarak yüklemek için kullandığınız yönteme göre değiştirilmesi gerekir. Ardından cron, yeni resimler için her saatte veya günde bir kez kontrol etmek üzere bu komut dosyasını yürütmek üzere ayarlayın .

Hatta bu komut dosyasının istemci makinede dışlanacağı bir komut dosyasını almak için ayarlayabilirsiniz ve daha sonra görüntüleri alır ve gconftool-2 ile arka planı değiştirir. Bu, bir arka planı değiştirmekten daha fazlasını yürütmenizi sağlar.


İle bir cron işi oluşturabilirsiniz sudo crontab -e. Bu şuna benzer bir çizgi gösterecektir:

# m h  dom mon dow   command

(m dakika, s saat, ayın dom günü, pzt ay, haftanın dow günü) ve altına ekleyebilirsiniz ...

0 * * * /path/to/executable

veya

@hourly     /path/to/executable

olduğu /path/to/executableher saat çalıştırın. Dikkat edin: Buraya koyduğunuz bir komut dosyası, siz eklemediğiniz sürece yol değişkenini anlamaz. Bunu dahil etmek için en üste koyabilirsiniz $SHELLve $PATH:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Aksi takdirde, komut dosyanızın komutları yürütmek için tam yol adları kullandığından emin olmanız gerekir. Cron hakkında daha fazla bilgi Ubuntu wiki'sinde bulunabilir .

/etc/cron.hourlyDizini, her saat çalışacak bir komut dosyası koymak için de kullanabilirsiniz . Son bölümle ilgili örnek konular: cron.hourly yapılandırmamdaki sorun nedir? ve Cron.hourly çalışmaz .


Her 1 saatte bir yeni görüntüler olup olmadığını kontrol eden cron işi eklemek için cevabı güncellerseniz iyi olur.
karthick87


3

Duvar kağıdı ayarını zorunlu yapabilirsiniz, yani kullanıcılar arka planlarını özelleştiremezler.

Ubuntu 11.04 ve önceki sürümlerinde bu komutun çalışması gerekir :

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 (veya herhangi bir GNOME 3 sistem) ise, bunu yapmak mümkün olmalıdır ile :

  1. İçeriği içeren bir / etc / dconf / profile / kullanıcı dosyası oluşturun:

    user
    site
    
  2. İçeriği içeren bir /etc/dconf/db/site.d/background dosyası oluşturarak varsayılan bir ayar yapın:

    [org/gnome/desktop/background]
    picture-uri='file:///usr/share/backgrounds/company-wallpaper.jpg'
    
  3. Ve son olarak içeriği ile /etc/dconf/db/site.d/locks/background oluşturarak varsayılanı zorunlu yapın:

    /org/gnome/desktop/background/picture-uri
    
  4. dconf ayarlarının çalışması için derlenmesi gerekir, bu nedenle çalıştır sudo dconf update Bunu ilk çalıştırdığınızda, efekti görmek için yeniden başlatmanız gerekir. Şu anda, kullanıcıların normal Arka Plan seçicisini görmeye devam edecekleri bir hata var ; aslında arka planı değiştirmez.

Bu ayarı şirketinizdeki tüm bilgisayarlara tanıtmak için bu çözümü kukla gibi bir şeyle birleştirin!


İlginç bir çözüm. Duvar kağıdını bir yerde paylaşılan bir depoda barındıramaz mı? Mesela normal bir web sitesi gibi mi? Bu durumda bunun neredeyse mükemmel bir çözüm olacağını düşünüyorum, çünkü bu da geçiş yapmayı kolaylaştıracaktır.
Jo-Erlend Schinstad

@ Jo-Erlend normal bir web sitesi sadece dosya: /// URI'lerine izin verildiği için çalışmaz. Bilgisayar zaten bağlı olduğu sürece bir ağ sunucusunun iyi olacağını umuyorum.
Jeremy Bicha

1

ubuntu 11.10 (veya herhangi bir GNOME 3 sistemi) için benim çözüm:

#!/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"

iki mantıklı bölüm var. ilk indirilen yerden duvar kağıdı, ikinci set duvar kağıdı olsun. basit!


0

Şu beş adımı izleyin:

  1. clustersshBirden çok sistemin uzaktan oturumunu clusterssh hakkında daha fazla bilgi almak için aracı centos / ubuntu'ya yükleyin

  2. clusterssh.shKök dizinde adlı bir dosya oluşturun .
    Örneğin :vim /root/.clusterssh.sh

    #!/bin/bash
    cssh  -l <username> <ip addresses to connnect>
    :wq
    

    Bir kez birden fazla linux ana kabuk almak.
    Kullanıcıya giriş yapın.

  3. Kök giriş bilgilerini kullanarak duvar kağıdı dosyasını kopyalayın
    Örneğin:

    scp root@10.1.0.241:/root/Downloads/wallpaper.jpg(Source)  /home (Destination)
    

    Şifre isteyecek, kaynak sistemin şifresini verecektir

  4. “Görüntülenemiyor hatası” nın üstesinden gelmek için bu komutu çalıştırın

    $export DISPLAY=:0
    

    veya

    $export DISPLAY=:1.0
    
  5. Duvar kağıdını ayarlamamız gereken kullanıcı girişinden aşağıdaki komutu çalıştırın

    pcmanfm  --set-wallpaper=”/home/wallaper.jpg”
    

    Kullanıcının duvar kağıdını ayarlamasına izin verilmemesi durumunda, o kullanıcıya sudo izni vermemiz gerekir, aşağıdaki işlemi kullanın.

    Git #nano /etc/sudoersgirip kökünün altına

    Username ALL=/usr/bin/pcmanfm #command location
    

Ve Boom! burada duvar kağıdını tek bir vuruşta birden fazla sisteminizde alabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.