Làm cách nào để chạy anacron trong chế độ người dùng?


30

Tôi muốn thiết lập một tác vụ theo lịch trình thông qua anacronnhưng tôi muốn làm như vậy trong chế độ người dùng. Làm thế nào tôi có thể đạt được điều này?


Nếu bạn muốn tác vụ chạy trong chế độ người dùng, bạn có thể làm những gì tôi đã làm và chỉ cần trả trước sudo -u <user>trước khi thực hiện nhiệm vụanacrontab
Karthik T

2
Cũng trả lời ở đây: serverfault.com/questions/172989/user-specific-anacrontab/... và đây là một tốt đẹp hoàn toàn viết lên giải pháp: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Câu trả lời:


33

Bạn có thể thiết lập một phiên bản anacron riêng để chạy trong chế độ người dùng:

  1. Tạo một .anacronthư mục trong thư mục chính của bạn và trong đó có hai thư mục con etcspool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Tạo một tệp mới ~/.anacron/etc/anacrontabvới nội dung tương tự như sau:

    # /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. Thêm dòng sau vào crontab của bạn bằng cách sử dụng crontab -e:

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

Chỉ cần xác nhận, điều này chạy tập lệnh được chỉ định là người dùng, vì vậy một whoamitrong tập lệnh sẽ cung cấp tên người dùng?
Christoph

hm vâng, khi kiểm tra thêm tôi không thấy tại sao không ...
Christoph

3
Tôi nghĩ bạn cần chạy anacronđịnh kỳ; Nó dường như chạy một lần rồi bỏ. Anacron của hệ thống được gọi mỗi giờ một lần. Tôi cho rằng một chiến lược tương tự sẽ hoạt động ở đây, tức là gọi người dùng anacrontừ người dùng crontab.
Sparhawk

1
@Sparhawk đồng ý, đặc biệt là Ubuntu 15.10 anacron sử dụng cả hai /etc/apm/event.d/anacron/etc/init/anacron.confđể chăm sóc khởi động lại.
Ciro Santilli 心 心

1
Bạn cần phải chạy anacron giờ với một công việc định kỳ, ví dụ:01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside

0

Điều này làm việc cho tôi (cảm ơn), nhưng tôi đã không sử dụng bước cuối cùng được đưa ra trong câu trả lời:

Sau đó thêm dòng sau vào ~/.profile:

Tôi đang sử dụng Ubuntu Studio 12.10 Định lượng và trong trường hợp của tôi thay vì bước cuối cùng đó, tôi đặt một lớp lót đó vào đây: Menu Ứng dụng Menu → → Cài đặt Cài đặt → → Ứng dụng Autostart tab tab.

Điều này dành cho những người trong chúng ta là người dùng GUI, vì ~/.profilechỉ có nguồn gốc từ bash khi nó bắt đầu một vỏ tương tác đăng nhập (thậm chí ~/bashrckhông hữu ích vì nó chỉ có nguồn gốc khi bash đang bắt đầu một vỏ tương tác).


Mmh, bản thân tôi là người dùng GUI và dòng trong .profileluôn hoạt động tốt với tôi (Ubuntu 12.04 ở đây).
Glutimate
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.