ฉันจะรัน anacron ในโหมดผู้ใช้ได้อย่างไร


30

ฉันต้องการตั้งค่างานตามกำหนดเวลาผ่านanacronแต่ฉันต้องการทำในโหมดผู้ใช้ ฉันจะบรรลุสิ่งนี้ได้อย่างไร


หากคุณต้องการให้งานทำงานในโหมดผู้ใช้คุณสามารถทำสิ่งที่ฉันทำและเพียงแค่sudo -u <user>เตรียมงานก่อนในanacrontab
Karthik T

2
นอกจากนี้ยังตอบที่นี่: serverfault.com/questions/172989/user-specific-anacrontab/...และนี่คือความสุขที่เขียนขึ้นอย่างเต็มที่วิธีการแก้ปัญหา: akeil.net/posts/user-controlled-anacron.html
ไซมอนวูดไซด์

คำตอบ:


33

คุณสามารถตั้งค่าอินสแตนซ์ anacron แยกต่างหากให้ทำงานในโหมดผู้ใช้:

  1. สร้าง.anacronโฟลเดอร์ในโฮมไดเร็กทอรีของคุณและในโฟลเดอร์ย่อยสองโฟลเดอร์etcและspool:

    mkdir -p ~/.anacron/{etc,spool}
  2. สร้างไฟล์ใหม่ที่~/.anacron/etc/anacrontabมีเนื้อหาคล้ายกับที่แสดงต่อไปนี้:

    # /etc/anacrontab: configuration file for anacron
    
    # See anacron(8) and anacrontab(5) for details.
    
    SHELL=/bin/bash
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # period  delay  job-identifier  command
    1         10     testjob         test.sh
  3. เพิ่มบรรทัดต่อไปนี้ใน crontab ของคุณโดยใช้crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool

เพียงเพื่อยืนยันนี่จะรันสคริปต์ที่ระบุในฐานะผู้ใช้ดังนั้นwhoamiในสคริปต์จะให้ชื่อผู้ใช้หรือไม่
Christoph

hm ใช่ในการตรวจสอบต่อไปผมไม่เห็นว่าทำไมไม่ ...
คริสโต

3
ฉันคิดว่าคุณต้องวิ่งanacronเป็นระยะ ดูเหมือนว่าจะทำงานครั้งเดียวแล้วออกจาก Anacron ของระบบถูกเรียกหนึ่งครั้งทุกชั่วโมง ผมคิดว่าเป็นกลยุทธ์ที่คล้ายกันจะทำงานที่นี่คือเรียกผู้ใช้จากผู้ใช้anacron crontab
Sparhawk

1
@Sparhawk ตกลงโดยเฉพาะ Ubuntu 15.10 anacron ใช้ทั้งสอง/etc/apm/event.d/anacronและ/etc/init/anacron.confดูแลการรีสตาร์ท
Ciro Santilli 新疆改造中心法轮功六四事件

1
คุณต้องใช้ anacron ทุกชั่วโมงกับงาน cron เช่น01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside

0

สิ่งนี้ใช้งานได้สำหรับฉัน (ขอบคุณ) แต่ฉันไม่ได้ใช้ขั้นตอนสุดท้ายในคำตอบ:

จากนั้นเพิ่มบรรทัดต่อไปนี้ใน~/.profile:

ฉันใช้ Ubuntu Studio 12.10 Quantal และในกรณีของฉันแทนที่จะเป็นขั้นตอนสุดท้ายฉันวางซับไว้ที่นี่: "เมนูแอปพลิเคชัน" → "การตั้งค่า" → "เครื่องมือจัดการการตั้งค่า" จากนั้นในเครื่องมือจัดการการตั้งค่าภายใต้ "เซสชันและเริ่มต้น" แท็บ“ แอปพลิเคชันเริ่มอัตโนมัติ”

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


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