Rumah  >  Artikel  >  Tutorial sistem  >  Ketahui cara mengkonfigurasi tugas berjadual dalam Linux: menggunakan cron dan anacron

Ketahui cara mengkonfigurasi tugas berjadual dalam Linux: menggunakan cron dan anacron

王林
王林ke hadapan
2024-01-15 11:33:05903semak imbas
Pengenalan Dalam artikel ini, kami menerangkan cron dan anacron serta menunjukkan kepada anda cara menyediakan anacron dalam Linux. Kami juga akan membandingkan kedua-dua alat ini.

Linux 中怎么设置计划任务:cron 与 anacron

persediaan cron dalam Linux

cron - ialah proses daemon yang digunakan untuk menjalankan tugas berjadual seperti sandaran sistem, kemas kini, dsb. Ia sesuai untuk tugas berjadual yang dijalankan pada mesin yang menjalankan 24X7, seperti pelayan.

Arahan/skrip ditulis dalam skrip tugas cron, yang dijadualkan dalam fail crontab. Fail lalai sistem cromtab ialah /etc/crontab , tetapi setiap pengguna juga boleh mencipta fail cromtab mereka sendiri untuk menjalankan arahan yang ditentukan pengguna pada masa tertentu.

Untuk mencipta fail crontab peribadi, hanya taip:

$ crontab -e

Linux 中怎么设置计划任务:cron 与 anacron

Cara menyediakan anacron dalam Linux

anacron digunakan untuk menjalankan arahan dengan kekerapan dalam hari. Ia berfungsi sedikit berbeza daripada cron, ia mengandaikan mesin tidak akan dihidupkan sepanjang masa.

Cron juga sesuai untuk menjalankan tugas berjadual harian, mingguan dan bulanan pada mesin yang tidak berjalan 24X7, seperti komputer riba dan komputer meja (terjemahan LCTT: tidak sesuai untuk melaksanakan tugas mengikut jam dan minit).

Andaikan anda mempunyai tugas berjadual (seperti skrip sandaran) yang ingin anda jalankan setiap hari menggunakan cron pada tengah malam, mungkin semasa anda sedang tidur dan desktop/komputer riba anda ditutup pada masa itu. Skrip sandaran anda tidak akan dijalankan.

Namun, jika anda menggunakan anacron, anda boleh memastikan bahawa skrip sandaran akan dilaksanakan pada kali seterusnya anda menghidupkan desktop/komputer riba anda.

Cara anacron berfungsi pada Linux

tugasan anacron disenaraikan dalam /etc/anacrontab dan tugasan boleh dijadualkan menggunakan format berikut (komen dalam fail anacron mesti bermula dengan nombor #).

period   delay   job-identifier   command

Dari format di atas:

  • tempoh - Ini ialah kekerapan tugasan, dinyatakan dalam hari, atau @harian, @mingguan, @bulanan untuk harian, mingguan atau bulanan. Anda juga boleh menggunakan nombor: 1 - harian, 7 - mingguan, 30 - bulanan, atau N - hari.
  • delay - Ini ialah bilangan minit untuk menunggu sebelum melaksanakan tugas.
  • job-id - Ini adalah nama unik kerja yang ditulis dalam fail log.
  • perintah - Ini ialah arahan atau skrip shell untuk dilaksanakan.

Untuk menyemak imbas fail contoh, taip:

$ ls -l /var/spool/anacron/
total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly

Inilah yang sebenarnya berlaku:

  • anacron 会检查任务是否已经在 period 字段指定的时间被被执行了。如果没有,则在等待 delay 字段中指定的分钟数后,执行 command字段中指定的命令。
  • 一旦任务被执行了,它会使用 job-id (时间戳文件名)字段中指定的名称将日期记录在 /var/spool/anacron 目录中的时间戳文件中。

现在让我们看一个例子。这个会每天运行 /home/aaronkilik/bin/backup.sh 脚本:

 @daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

当机器在 backup.sh 期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而不用再等待 7 天。

这里有两个你应该理解的 anacrontab 文件的重要变量:

  • START_HOURS_RANGE - 这个设置任务开始运行的时间范围(也就是任务只在这几个小时内运行)。
  • RANDOM_DELAY - 这定义添加到用户定义的任务延迟的最大随机延迟(默认为 45)。

这是你的 anacrontab 文件可能看上去的样子。

Anacron – /etc/anacrontab

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly
@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh                                                                      

下面是 cron 以及 anacron 的比较,帮助你理解何时用他们其中一个。

cron anacron
它是守护进程 它不是守护进程
适合服务器 适合桌面/笔记本电脑
可以让你以分钟级运行计划任务 只能让你以天为基础来运行计划任务
关机时不会执行计划任务 如果计划任务到期,机器是关机的,那么它会在机器下次开机后执行计划任务
普通用户和 root 用户都可以使用 只有 root 用户可以使用(使用特定的配置启动普通任务)

Perbezaan utama antara cron dan anacron ialah cron boleh berjalan dengan berkesan pada mesin yang sedang berjalan secara berterusan, manakala anacron disasarkan kepada mesin yang akan ditutup dalam masa sehari atau seminggu.

Jika anda mengetahui kaedah lain, sila kongsikannya dengan kami di dalam kotak komen.

Alamat asal: https://www.tecmint.com/cron-vs-anacron-schedule-jobs-using-anacron-on-linux/‎

Alamat artikel ini: https://www.linuxprobe.com/cron-anacron-work.htmlEditor: Zhang Xiong, Pengulas: Peng Zengbao

Alamat asal artikel ini: https://www.linuxprobe.com/cron-anacron-work.htmlEditor: Penamat Masalah, Penyemak: Tiada

Syorkan beberapa artikel yang berkaitan dengan artikel ini untuk anda:

  • Contoh penggunaan pengurus pakej Zypper dalam SUSE Linux
  • Penjelasan pembolehubah dalam nota Swift
  • "Pembangunan Sudut dalam Amalan" pdf gambaran keseluruhan syntax RS
  • "Spark Rapid Big Data Analysis 2nd Edition" pdf muat turun percuma e-book
  • Memasang Memcached pada Ubuntu
  • Pelbagai penggunaan arahan awk
  • Penggunaan asas Go generik
  • Cara menggunakan Python secara dinamik atau Bash ke konfigurasi fail
  • Biar Linux menyimpan masa yang tepat

Atas ialah kandungan terperinci Ketahui cara mengkonfigurasi tugas berjadual dalam Linux: menggunakan cron dan anacron. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam