จะเปลี่ยนวอลเปเปอร์ของลูกค้าทั้งหมดได้อย่างไร?


13

ดังที่กล่าวไว้ก่อนหน้านี้เราใช้งาน Ubuntu มากกว่า 500 เครื่องใน บริษัท ของเรา บ่อยครั้งที่เราเคยตั้งโฆษณา บริษัท ของเราเป็นวอลล์เปเปอร์ในเครื่องลูกค้า มันยากที่เราจะเปลี่ยนวอลเปเปอร์ในเครื่องเหล่านี้ทีละตัวและมันก็ยากที่เราจะเรียกใช้สคริปต์ในทุก ๆ เครื่องผ่าน 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

โดยทั่วไปบรรทัดที่ 2 จะต้องเปลี่ยนเป็นวิธีการที่คุณใช้ในการโหลดภาพไปยังเครื่องด้วยตนเอง จากนั้นตั้งค่าcronให้เรียกใช้สคริปต์นี้เพื่อตรวจสอบภาพใหม่ทุกชั่วโมงหรือวันละครั้ง

คุณสามารถตั้งค่าเพื่อดึงสคริปต์ที่สคริปต์นั้นถูก excecuted บนเครื่องไคลเอนต์จากนั้นดึงภาพและเปลี่ยนพื้นหลังด้วย gconftool-2 สิ่งนี้จะช่วยให้คุณสามารถรันมากกว่าการเปลี่ยนพื้นหลัง


คุณสามารถสร้างงาน cron sudo crontab -eกับ สิ่งนี้จะแสดงบรรทัดที่คล้ายกับสิ่งนี้:

# m h  dom mon dow   command

(m นาที, ชั่วโมงชั่วโมง, วัน 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 สามารถพบได้ในวิกิพีเดียอูบุนตู

นอกจากนี้คุณยังสามารถใช้/etc/cron.hourlyไดเรกทอรีเพื่อวางสคริปต์ที่ทำงานทุกชั่วโมง ตัวอย่างหัวข้อที่เกี่ยวข้องกับส่วนสุดท้าย: มีอะไรผิดปกติกับการกำหนดค่า cron.hourly ของฉัน และCron.hourly จะไม่ทำงาน


มันจะดีถ้าคุณปรับปรุงคำตอบสำหรับการเพิ่มงาน cron ซึ่งตรวจสอบภาพใหม่ทุก ๆ 1 ชั่วโมง
karthick87

4

มันอาจจะคุ้มค่าที่จะติดตั้งกรอบการดูแลระบบระยะไกลเช่นหุ่นเชิด โดยปกติจะใช้เวลาพอสมควรในการติดตั้งและกำหนดค่าสำหรับเครือข่ายของคุณ แต่เมื่อมีแล้วก็ค่อนข้างง่ายที่จะคัดลอกไฟล์ไปยังเครื่องทั้งหมด (หรือเพียงแค่ส่วนย่อยของพวกเขา) เรียกใช้สคริปต์กับพวกเขาและ


คุณช่วยกรุณาตอบอย่างละเอียดได้ไหม?
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 Schinstad

@ Jo-Erlend เว็บไซต์ปกติจะไม่ทำงานเนื่องจากอนุญาตเฉพาะไฟล์: /// URIs ฉันคาดหวังว่าเซิร์ฟเวอร์เครือข่ายจะใช้ได้แม้ว่าตราบใดที่คอมพิวเตอร์เชื่อมต่ออยู่
Jeremy Bicha

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 เพื่อรับเซสชันระยะไกลของหลายระบบอ่านเพิ่มเติมเกี่ยวกับคลัสเตอร์

  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
    

และบูม! ที่นี่คุณจะได้ภาพพื้นหลังในระบบที่หลากหลายของคุณในหนึ่งเดียว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.