Bagaimana saya bisa menjalankan anacron dalam mode pengguna?

30

Saya ingin mengatur tugas terjadwal via anacrontetapi saya ingin melakukannya dalam mode pengguna. Bagaimana saya bisa mencapai ini?

Glutanimate
sumber
Jika Anda ingin tugas dijalankan dalam mode pengguna, Anda dapat melakukan apa yang saya lakukan dan hanya menambahkan sudo -u <user>sebelum tugas dianacrontab
Karthik T
2
Juga dijawab di sini: serverfault.com/questions/172989/user-specific-anacrontab/… dan inilah solusi yang ditulis lengkap: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Jawaban:

33

Anda dapat mengatur instance anacron terpisah untuk dijalankan dalam mode pengguna:

  1. Buat .anacronfolder di direktori home Anda dan di dalamnya dua subfolder, etcdan spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Buat file baru ~/.anacron/etc/anacrontabdengan konten yang mirip dengan yang berikut:

    # /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. Tambahkan baris berikut ke crontab Anda menggunakan crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimate
sumber
Hanya untuk mengonfirmasi, ini menjalankan skrip yang ditentukan sebagai pengguna, jadi whoamiskrip dalam akan memberikan nama pengguna?
Christoph
hm ya, pada pemeriksaan lebih lanjut saya tidak melihat mengapa tidak ...
Christoph
3
Saya pikir Anda perlu menjalankan anacronsecara berkala; tampaknya berjalan sekali lalu berhenti. Anacron sistem dipanggil sekali setiap jam. Saya kira strategi serupa akan bekerja di sini, yaitu memanggil pengguna anacrondari pengguna crontab.
Sparhawk
1
@Sparhawk setuju, khususnya Ubuntu 15,10 anacron menggunakan keduanya /etc/apm/event.d/anacrondan /etc/init/anacron.confuntuk mengatur ulang.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Anda perlu menjalankan anacron setiap jam dengan pekerjaan cron, misalnya01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0

Ini berhasil untuk saya (terima kasih), tetapi saya tidak menggunakan langkah terakhir yang diberikan dalam jawaban:

Kemudian tambahkan baris berikut ke Anda ~/.profile:

Saya menggunakan Ubuntu Studio 12.10 Quantal dan dalam kasus saya alih-alih langkah terakhir itu saya taruh satu liner di sini: "Aplikasi Menu" → "Pengaturan" → "Pengaturan Manajer" lalu di Pengaturan Manajer di bawah "Sesi dan Startup" kemudian Tab "Application Autostart".

Ini bagi kita yang merupakan pengguna GUI, karena ~/.profilehanya bersumber dari bash ketika memulai shell interaktif log-in (bahkan ~/bashrctidak begitu berguna karena itu hanya bersumber ketika bash memulai shell interaktif).

sam
sumber
Mmh, saya adalah pengguna GUI sendiri dan sambungan .profileselalu bekerja dengan baik untuk saya (Ubuntu 12.04 di sini).
Glutanimate