Як змінити шпалери всіх клієнтів?


13

Як говорилося раніше, у нашій компанії працює понад 500 комп'ютерів ubuntu. Часто ми використовували для встановлення реклами нашої компанії як шпалери на машині клієнтів. Нам важко змінювати шпалери у всіх цих машинах по одному, а також нам важко виконувати скрипт у кожній машині через SSH для зміни шпалер. Чи є спосіб налаштування сервера, як, наприклад, якщо ми змінимо шпалери на сервері, це має бути виконано на всіх машинах клієнтів. Якщо це можливо, це заощадить наш час і сили. Хтось може допомогти? Спасибі заздалегідь..


1
Чи є у вашої компанії локальний сайт, який переглядають лише працівники? Якщо так, чи не можете ви додати скрипт на сайт, тож коли сайт завантажує, він також завантажує цей сценарій?
freebird

Це питання потрібно оновити для інструментів dconf, які Ubuntu зараз використовує для фонів.
Jjed

Відповіді:


15

Налаштуйте завдання 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

(м. хв., ч. год., доменний місяць місяця, пн. місяць, день дні тижня) і під ним можна додати ...

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 не працюватиме .


Буде приємно, якщо ви оновлюєте відповідь на додавання крон-завдання, яке перевіряє наявність нових зображень кожні 1 годину.
karthick87

4

Можливо, варто того встановити віддалений фреймворк адміністратора, як ляльковий . Зазвичай потрібен певний час, щоб правильно встановити та налаштувати її для вашої мережі, але як тільки там є, досить просто скопіювати файли на всі машини (або лише їх підмножину), запустити сценарії на них тощо.


Ви можете pls докладно відповісти ур?
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 звичайний веб-сайт не працює, оскільки дозволені лише файли: /// URI. Я сподіваюся, що мережевий сервер буде добре, хоча поки комп'ютер до нього вже підключений.
Джеремі Біча

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"

є дві логічні частини. перший отримати шпалери, другий встановити шпалери з завантаженого місця. просто!


0

Виконайте ці п’ять кроків:

  1. Встановіть clustersshінструмент у centos / ubuntu, щоб отримати віддалений сеанс декількох систем читати більше про clusterssh

  2. Створіть файл, названий clusterssh.shу кореневому каталозі.
    Наприклад :vim /root/.clusterssh.sh

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

    Як тільки ви отримаєте оболонку декількох хостів Linux.
    Увійти до користувача.

  3. Скопіюйте файл шпалер за допомогою кореневого входу,
    наприклад:

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

    Буде запропоновано ввести пароль, вказати пароль вихідної системи

  4. Виконайте цю команду, щоб подолати помилку "Неможливо відобразити"

    $export DISPLAY=:0
    

    або

    $export DISPLAY=:1.0
    
  5. Запустіть команду нижче з входу користувача, у якому нам потрібно встановити шпалери

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

    У випадку, якщо користувачеві заборонено встановлювати шпалери, нам потрібно надати sudo дозвіл цьому користувачеві, скористайтеся способом нижче.

    Перейдіть до #nano /etc/sudoersі нижче кореневого введення

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

І Бум! тут ви отримуєте шпалери на своїх кількох системах одним ударом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.