Tao Crontab Trên Linux

      400
trang chủ » Tài Liệu Kỹ Thuật » Hướng dẫn áp dụng crontab Linux đơn giản dễ dàng nhất cho những người bắt đầu bắt đầu

Crontab Linux là một trong dịch vụ giúp thực hiện những task được lên định kỳ sẵn, giúp cải thiện đáng kể hiệu suất thao tác. Vậy làm cụ nào nhằm sử dụng Crontab Linux? Bài viết này sẽ chỉ dẫn sử dụng Crontab Linux một bí quyết chi tiết tuyệt nhất.

Bạn đang xem: Tao crontab trên linux

giữa những nổi khổ của cac sysadmin chắc hẳn là câu hỏi nên làm task cả ngày lẫn đêm. Một số task cần được triển khai cả đêm, tốt nên có tác dụng vào số đông ngày vào cuối tuần. Thế ta phải vứt thời hạn rảnh rỗi mỗi buổi tối nhằm chạy các lệnh, script xung quanh tiếng sao? Hay cơ hội nào cũng đề nghị thức tối để chạy những bản backup hay cập nhật?

Tuy nhiên, hiện nay gồm nhì app góp chạy những lệnh, công tác với task vào phần lớn thời hạn được định sẵn. Hai hình thức cronat góp các sysadmin rất có thể lên kế hoạch cụ thể cho các task. Sau đó chúng đang auto chạy vào hầu như thời hạn kia. Thương Mại Dịch Vụ at đang hướng đẫn một task chạy một lượt tốt nhất vào trong 1 thời gian xác định. Trong lúc ấy, cron chất nhận được lên kế hoạch tiến hành task tái diễn các lần. Thời gian lặp có thể theo ngày, theo tuần, hoặc là mỗi tháng.

Trong nội dung bài viết này, Cửa Hàng chúng tôi sẽ cung ứng 1 hướng dẫn cụ thể độc nhất vô nhị về cách áp dụng Crontab Linux. Hãy bắt đầu ngay lập tức thôi nào!

*
*

Nội dung


Sử dụng crontab Linuxanacron

Một số ứng dụng thông dụng của cron

Cron hoàn toàn có thể được ứng dụng vào không hề ít câu hỏi. Dưới đấy là một share về bài toán sử dụng cron của một Chuyên Viên trên web Opensource.com – David Both:

” Tôi hay sử dụng cron bỏ lên lịch mang đến đầy đủ vấn đề gần như là là minh bạch. Chẳng hạn như cần phần lớn đặn backup hàng ngày vào 2 tiếng sáng sủa.

Giờ khối hệ thống (tức là giờ đồng hồ hệ điều hành) trên các laptop của tớ hiện giờ đang thực hiện Network Time Protocol (NTP). Mặc cho dù NTP đặt thời gian khối hệ thống, này lại không đặt thời hạn phần cứng. Do kia, tôi thực hiện cron để tại vị thời hạn Hartware dựa trên thời hạn khối hệ thống.

Dường như, tôi cũng có thể có một cmùi hương tình Bash chạy hằng ngày nhanh chóng. Chương trình này tạo thành một “message of the day” (MOTD) bên trên mỗi laptop. Tin nhắn này đang đựng các biết tin, chẳng hạn như disk usage, hay buộc phải được update tiếp tục.

Nhiều quá trình với hình thức dịch vụ khối hệ thống, như Logwatch, Iogrotate, hay Rootkit Hunter, rất nhiều sử dụng cron để lên định kỳ những task cùng chạy chương trình mỗi ngày.”

Nói sơ qua về kiểu cách quản lý của cron, thứ 1 ta cần hiểu rõ crond daemon là 1 trong những hình thức dịch vụ chạy background enable những tính năng của cron.

Thương Mại Dịch Vụ cron đã check các file vào tlỗi mục /var/spool/cron với /ect/cron.d, với file /etc/anacrontab. Các tệp tin này cất nội dung xác minh các quá trình cơ mà cron buộc phải chạy giữa những khoảng tầm thời hạn khác biệt. File cron của người tiêu dùng cá thể được đặt trong /var/spool/cron. Các hình thức dịch vụ và ứng dụng hệ thống hay vẫn thêm các tệp tin công việc của cron vào /etc/cron.d.

Sử dụng crontab Linux

Cron vận động dựa vào những lệnh được hướng dẫn và chỉ định trong cron table (crontab). Mỗi người tiêu dùng, bao gồm cả root, hầu như rất có thể tất cả một file cron. Các file này theo mang định sẽ không mãi mãi. Nhưng ta hoàn toàn có thể chế tạo nó trong tlỗi mục /var/spool/cron bằng cách cần sử dụng lệnh crontab -e. Dường như, lệnh này cũng rất có thể được dùng làm chỉnh sửa một file cron. Chúng tôi khulặng bạn không nên những thực hiện trình editor tiêu chuẩn (nlỗi Vi, Vyên, Emacs, Nano,…). Bởi do áp dụng lệnh crontab không những chất nhận được bạn chỉnh sửa lệnh, nó còn khởi cồn lại crond daemon lúc ta lưu giữ cùng bay trình editor. Lệnh crontab áp dụng Vi làm cho editor cơ bản của chính nó, vày Vi luôn luôn luôn khả dụng.

Các tệp tin cron đang trống, phải các lệnh cần nhận thêm từ trên đầu. Dưới đấy là một ví dụ về tư tưởng những quá trình trong tệp tin cron:

Ví dụ:

# crontab -eSHELL=/bin/bashMAILTO=root
example.comPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,atruyền thông quảng cáo ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,tháng,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name comm& lớn be executed# backup using the rsbu program to the internal 4TB HDD and then 4TB external01 01 * * * /usr/local/bin/rsbu -vbd1 ; /usr/local/bin/rsbu -vbd2# Set the hardware clochồng to keep it in sync with the more accurate system clock03 05 * * * /sbin/hwclochồng --systohc# Persize monthly updates on the first of the month# 25 04 1 * * /usr/bin/dnf -y updateBa dòng trước tiên có trọng trách thiết lập một môi trường mang định. Môi trường bắt buộc được thiết lập cân xứng cùng với yêu cầu của người dùng. Bởi vày cron ko cung cấp một môi trường xung quanh cụ thể làm sao cả. Biến SHELL hướng đẫn shell để thực hiện lúc những câu lệnh được thực thi. Trong ví dụ này, shell Bash được chỉ định. Biến MAILTO đặt tác động mail dìm các hiệu quả của cron job. Các mail này hoàn toàn có thể hỗ trợ tâm lý của những cron job (backup, update…). Đồng thời bao hàm cả output cơ mà người dùng mong lúc chạy lịch trình thủ công bằng tay từ bỏ cmd. Dòng sản phẩm công nghệ bố tất cả trọng trách thiết lập PATH cho môi trường thiên nhiên.

Có tương đối nhiều dòng comment ngơi nghỉ ví dụ trên. Chúng trình diễn chi tiết các cú pháp quan trọng để khẳng định một cron job. Dưới đây là báo cáo cụ thể về từng dòng lệnh:

01 01***/usr/local/bin/rsbu-vbd1;/usr/local/bin/rsbu-vbd2Dòng này trong /etc/crontab đã chạy một script, thực hiện backup khối hệ thống.

Tiếp theo

Dòng lệnh này sẽ chạy script trong shell Bash, rsbu, gồm nhiệm vụ backup toàn bộ các khối hệ thống vào 1:01 a.m hằng ngày (01 01). Dấu * nằm tại đoạn tía, tư với năm của phần thời gian cũng giống như nhỏng những tệp tin glob hay wildcard, dùng cho các phân loại thời gian khác. Cụ thể, chúng hướng đẫn “hàng ngày vào tháng”, “mỗi tháng”, với “mỗi ngày trong tuần”. Dòng này vẫn chạy backup hai lần. Một lần backup vào ổ cứng backup chuyên được dùng làm việc vào. Lần đồ vật nhị sẽ backup vào trong 1 USB drive sầu làm việc ngoại trừ.

Tiếp theo, loại lệnh này đặt thời hạn phần cứng trên máy tính bằng phương pháp áp dụng thời hạn khối hệ thống làm cho gốc. Dòng này được thiết lập nhằm chạy vào 5:03 a.m mỗi ngày.

03 05***/sbin/hwclock--systohcDòng cron job ở đầu cuối rất có thể được sử dụng để cập nhật dnf hay yum vào 04: 25 a.m vào trong ngày đầu tiên của hàng tháng. Tuy nhiên, nó đã có đặt thành một comment ngơi nghỉ ví dụ bên trên. Cho nên nó vẫn không hề chạy nữa.’

#25041**/usr/bin/dnf-yupdate

Một số mẹo trong việc lên lịch cùng với crontab Linux

Trước tiên, giả sử bạn có nhu cầu chạy một job như thế nào đó vào 3h chiều, mỗi trang bị Ba:

0015**Thu/usr/local/bin/mycronjob.shCâu lệnh này đang tiến hành mycronjob.sh từng 3 p.m máy Ba.

Hay ta cũng có thể chạy các report theo từng quý, sau khi chấm dứt từng quý. Mặc mặc dù cron không có tùy chọn mang đến “Ngày ở đầu cuối của tháng”, ta có thể thực hiện ngày trước tiên của mon tiếp sau, như sống dưới.

02 0311,4,7,10*/usr/local/bin/reports.shCron job này chạy những report mỗi từng quý vào ngày trước tiên của tháng, sau khoản thời gian chấm dứt một quý.

Câu lệnh tiếp sau đây mang lại job chạy trong vòng một phút, mỗi tiếng một lần, tự 9:01 a.m đến 5:01 p.m.

Xem thêm: Cách Thêm Hoặc Xóa Wifi Kết Nối Wifi Cho Máy Tính Bàn, Cách Kiểm Tra Và Khắc Phục

01 09-17***/usr/local/bin/hourlyreminder.shĐôi khi, bao hàm job rất cần phải thực hiện sau mỗi 2, 3 hay 4 giờ. Lúc đó, ta rất có thể rước tmùi hương số của giờ đồng hồ với khoảng chừng thời gian mong ước. Chẳng hạn nlỗi */3, tương tự cùng với job sau mỗi bố giờ. Hay 6-18/3 nhằm chạy từng ba tiếng, từ bỏ 6 a.m mang đến 6 p.m. Các khoảng thời hạn không giống cũng hoàn toàn có thể được chia tương tự như. Lấy ví dụ, biểu thức */15 ở đoạn phút Tức là “chạy job sau mỗi 15 phút”.

*/508-18/2***/usr/local/bin/mycronjob.shCó một vấn đề cần lưu ý: Các biểu thức phân chia nên tạo ra công dụng có phần dư bởi 0, khi đó job bắt đầu rất có thể chạy. Do kia, vào ví dụ này, job được tùy chỉnh thiết lập nhằm chạy năm phút ít 1 lần (08:05, 08:10, 08:15,…) trong các tiếng chẵn trường đoản cú 8 a.m mang lại 6 p.m, mà lại ko chạy trong những giờ đồng hồ lẻ. Lấy ví dụ, job sẽ không chạy trường đoản cú 9 p.m mang lại 9:59 a.m.

Giới hạn truy cập cron vào crontab Linux

Việc liên tiếp thực hiện cron có thể dẫn mang lại một số lỗi, ví dụ như tài nguyên ổn hệ thống (bộ nhớ, CPU…) bị sử dụng trên mức cho phép. Do đó, sysadmin có thể số lượng giới hạn quyền truy vấn của người tiêu dùng để tránh lỗi xẩy ra. Cụ thể, hãy chế tạo một file /ect/cron.allow, chứa danh sách người tiêu dùng có quyền tạo nên cron job. Tuy nhiên, người tiêu dùng root không thể bị chặn áp dụng cron.

Bằng bí quyết ngnạp năng lượng người tiêu dùng non-root tạo thành cron job, các root rất có thể đang cần thêm những cron job vào root crontab. Tuy nhiên, Việc này sẽ không còn chạy các job đó dưới quyền root. Cụ thể, trong ví dụ đầu tiên, ngôi trường username vào phần bình luận có thể được dùng để chỉ định và hướng dẫn ID người tiêu dùng nhưng job đề nghị gồm Khi nó chạy. Do kia, những job của người dùng non-root sẽ không còn chạy dưới quyền root.

lấy ví dụ như sau đầy cho biết một tư tưởng job, chạy bên dưới quyền người tiêu dùng là “student”:

04 07***student/usr/local/bin/mycronjob.shNếu không tồn tại người dùng được hướng đẫn, job đã đuổi theo người dùng tải tệp tin crontab. Trong ngôi trường đúng theo này chính là root.

cron.d

Tlỗi mục /etc/cron.d là vị trí chứa các áp dụng, nhỏng SpamAssassin, sysstat, tệp tin setup cron…Vì không có người tiêu dùng spamassassin hay sysstat, những công tác này nên một địa điểm để xác định những file cron. Vì vậy chúng sẽ tiến hành đặt ở vào /etc/cron.d

File /etc/cron.d/sysstat chứa các cron job liên quan mang đến báo cáo vận động hệ thống (SAR). Các tệp tin cron này có cùng format cùng với tệp tin cron của người dùng.

# Run system activity accounting tool every 10 minutes*/10 * * * * root /usr/lib64/sa/sa1 1 1# Generate a daily summary of process accounting at 23:5353 23 * * * root /usr/lib64/sa/sa2 -ACron file sysstat đã gồm hai mẫu lệnh nhằm tiến hành các task. Dòng đầu tiên chạy lệnh sa1 mỗi 10 phút để tích lũy tài liệu trong các tệp tin nhị phân đặc biệt quan trọng, được đặt tại thư mục /var/log/sa. Sau kia, từng tối vào 23:53, chương trình sa2 vẫn chạy nhằm tạo ra một bản bắt tắt hàng ngày.

anacron

Cmùi hương trình anacron tiến hành các tác dụng tương ục như crond. Nhưng nó hoàn toàn có thể chạy các job đã biết thành bỏ qua, chẳng hạn như Lúc laptop đã tắt hoặc quan yếu chạy job trong một thời hạn nhất thiết. Công cố này hết sức có ích cùng với người dùng máy vi tính hoặc các máy tính xách tay thường xuyên được chuyển vào chính sách sleep.

Ngay sau khoản thời gian máy tính xách tay được khởi rượu cồn, anacron vẫn khám nghiệm xem các job đã có cấu hình có bỏ qua định kỳ chạy như thế nào ko. Nếu có, những job này sẽ tiến hành chạy ngay lập tức lập tức. Nhưng các job đã chỉ chạy một lượt, bất kể bao những lần nó đã lỡ kế hoạch,

Ngoài ra, chương trình anacron hỗ trợ một trong những tùy chọn dễ ợt nhằm chạy các task được lên kế hoạch thường xuyên. Chỉ nên setup các script vào vào thư mục /etc/cron., tùy thuộc theo gia tốc ta hy vọng các job chạy.

Cách vận hành của anacron

Dịch Vụ Thương Mại crond chạy các cron job được chỉ định vào /etc/cron.d/0hourly.

# Run the hourly jobsSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root01 * * * * root run-parts /etc/cron.hourly2. Cron job được hướng đẫn trong /etc/cron.d/0hourly chạy lịch trình run-parts mỗi giờ một lượt.

3. Chương thơm trình run-parts đang chạy tất cả script gồm vào tlỗi mục /etc/cron.hourly.

4. Tlỗi mục /etc/cron.hourlychứa script 0anacron, script này đang chạy lịch trình anacron bởi config file /etdc/anacrontab ở dưới đây:

# /etc/anacrontab: configuration tệp tin for anacron

# See anacron(8) & anacrontab(5) for details.

SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# the maximal random delay added lớn the base delay of the jobsRANDOM_DELAY=45# the jobs will be started during the following hours onlySTART_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command1 5 cron.daily nice run-parts /etc/cron.daily7 25 cron.weekly nice run-parts /etc/cron.weekly