Làm cách nào để chạy một công việc định kỳ mỗi phút trong python?

Cách đơn giản nhất để thực hiện tự động hóa với Python là sử dụng crontab [cron] trên Mac hoặc Trình lập lịch tác vụ trên Windows. Trong hướng dẫn này, bạn sẽ học cách sử dụng crontab tự động chạy tập lệnh Python của mình

Chạy tập lệnh Python bằng Crontab. Nguồn. Crontab. đạo sư

Để thực thi tập lệnh Python qua crontab, hãy sử dụng

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
0 trong Terminal của bạn và sử dụng một trong các biểu thức Lịch trình Cron như
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
1,
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
2 hoặc sử dụng định dạng sau đây

$ * * * * * /usr/bin/python python-script.py

Để biết thêm, hãy làm theo phần còn lại của hướng dẫn bên dưới

Đăng ký nhận bản tin của tôi

Contenus người giả trang

1 Cron và Crontab là gì?

2 Bạn có thể tự động hóa những gì?

3 Tổng quan về Dự án

4 Bạn sẽ cần gì?

5 Cách lên lịch tác vụ với Cron

5. 1 Biểu thức lịch trình CRON

6 Làm cách nào để lên lịch cho tập lệnh bằng Cron?

7 Tạo tập lệnh Python

8 Tạo công việc định kỳ đầu tiên của bạn trong Crontab

8. 1 Liệt kê crontab hiện tại

8. 2 Tạo Crontab mới

8. 3 Các lệnh của Vi Editor

9 Tạo Trình lập lịch tập lệnh Python

9. 1 Cách lên lịch cho tập lệnh Python

9. 2 Chạy Tự động hóa tập lệnh

10 Tóm tắt

11 Hướng dẫn bổ sung

12 Khắc phục sự cố

12. 1 Thao tác không được phép

12. 2 Quyền bị từ chối

12. 3 Dừng tác vụ Cron hiện đang chạy

13 Bảng mã Crontab

14 Kết luận

14. 1 Bài viết liên quan.

Cron và Crontab là gì?

Cron là công cụ cho phép người dùng tự động chạy tập lệnh, lệnh hoặc phần mềm theo một lịch trình đã chỉ định. Crontab là tệp liệt kê các công việc mà cron sẽ thực thi

Cron không thực thi khi máy tính đang ở chế độ ngủ

Cron hoàn hảo để chạy tự động hóa tác vụ đơn giản có thể chạy trong ngày khi bạn đang làm việc

Để tự động hóa tác vụ một cách liền mạch cho dù máy tính của bạn có mở hay không. Cron không phải là giải pháp phù hợp với bạn. Bạn sẽ cần chạy tập lệnh của mình trên các máy chủ như AWS cho loại tự động hóa này

Bạn có thể tự động hóa những gì?

Bạn có thể trích xuất dữ liệu từ Google Search Console và Google Analytics theo một lịch trình cụ thể, gửi cho mình báo cáo email hàng tuần, ghi nhật ký tất cả từ khóa của bạn mỗi ngày hoặc tự động hóa nghiên cứu từ khóa, khởi chạy thu thập dữ liệu hàng tuần, lưu rô-bốt. txt và hơn thế nữa

Trước khi chúng ta có thể trình bày tất cả những điều đó, chúng ta cần học cách sử dụng Crontab

Tổng quan về dự án

Trong bài đăng này, chúng tôi sẽ tự động hóa một tập lệnh rất đơn giản để chạy mỗi phút

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]

Tập lệnh Python này sẽ tạo một

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
3 và nối tệp với thời gian khi công việc định kỳ được thực thi

Bạn sẽ cần gì?

Hướng dẫn này giả định rằng bạn đã cài đặt

  • MacOS [nếu không, hãy xem hướng dẫn Trình lập lịch tác vụ Windows được liên kết trong phần giới thiệu]
  • con trăn
  • Trình chỉnh sửa mã [như VScode]

Và rằng bạn có ít nhất kiến ​​thức cơ bản về

  • con trăn
  • Dòng lệnh

Nếu không, hãy bắt đầu lại từ đầu hướng dẫn Python của tôi

Cách lên lịch tác vụ với Cron

Cron sử dụng các biểu thức lịch trình để biết khi nào bạn muốn thực hiện một tác vụ

Nó có 5 tham số [

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
4] để cho phép bạn chọn khi nào bạn muốn chạy tập lệnh của mình

  • phút,
  • giờ,
  • ngày trong tháng,
  • tháng,
  • ngày trong tuần

Biểu thức lịch biểu Crontab

Biểu thức lịch trình CRON

Cách dễ nhất để tạo biểu thức lịch trình crontab là sử dụng crontab. đạo sư

Ngoài ra, đây là một bảng với tất cả các biểu thức phổ biến nhất mà bạn sẽ gặp phải

StringMeaningTương đương với
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
5một lần khi khởi động hệ thống
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
6một lần mỗi năm
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
7
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
8một lần một tháng
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
9
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
2một lần một tuần
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
31
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
1một ngày một lần
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
33
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
34một ngày một lần vào lúc nửa đêm
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
33
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
36một giờ
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
37một phút_______04một lần mỗi ngày trong tuần
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
39một lần mỗi ngày2 [Chủ nhật, một lần vào một thời điểm cụ thể]. 30] ______ biểu thức lịch trình 220cron

Làm cách nào để lên lịch tập lệnh bằng Cron?

Để lên lịch thực thi tập lệnh python bằng cron, chúng tôi sẽ

  1. Tạo tập lệnh Python
  2. Tạo một tệp crontab
  3. Tạo một bộ lập lịch Python Script
  4. Viết crontab

Tạo tập lệnh Python

Sử dụng tập lệnh ở trên, tạo tập lệnh Python

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
21 và lưu tập lệnh đó vào vị trí mà bạn có quyền [xem phần Khắc phục sự cố để hiểu lý do]. Trong trường hợp của tôi, tôi đã tạo một thư mục “Tự động hóa” trong đường dẫn
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
22

Tạo công việc định kỳ đầu tiên của bạn trong Crontab

Chúng tôi sẽ tạo và chạy tệp crontab bằng dòng lệnh

Mở thiết bị đầu cuối

Có ba [3] lệnh khả dụng để làm việc với tệp crontab.

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
23 [để hiển thị],
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
0 [để tạo] và
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
25 [để xóa]

Liệt kê crontab hiện tại

Kiểm tra xem bạn đã tạo crontab chưa

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
3

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
26 nghĩa là bạn muốn mở file crontab ở chế độ “list”

Nếu bạn chưa bao giờ tạo crontab trước đây, bạn sẽ nhận được thông báo này.

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
27

Tạo một Crontab mới

Bây giờ, chúng tôi sẽ thêm một công việc mới vào 

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
28

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
2

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
29 nghĩa là bạn muốn mở file crontab ở chế độ “chỉnh sửa”

Thao tác này sẽ mở trình soạn thảo vi. Đừng sợ, tôi sẽ hướng dẫn bạn thực hiện

Lệnh Vi Editor

Trước tiên, hãy xem các lệnh bạn có thể sử dụng trong trình soạn thảo vi

iChuyển sang chế độ Chèn [chế độ chỉnh sửa]escThoát khỏi chế độ chỉnh sửaddXóa dòng hiện tạiuHoàn tác thay đổi cuối cùng. q. Đóng trình chỉnh sửa mà không lưu thay đổi. wqLưu văn bản và đóng trình soạn thảo→ +
$ * * * * * /usr/bin/python python-script.py
40Di chuyển con trỏ nhanh hơn$Chuyển đến cuối dòng

Tạo một bộ lập lịch Python Script

Bây giờ chúng ta sẽ thêm lệnh Python script scheduler vào crontab bằng VI Editor

Cách lên lịch cho tập lệnh Python

Lệnh chúng ta sẽ sử dụng để thực thi tập lệnh python như thế này

Cấu trúc của lệnh tự động hóa tập lệnh Python

  • from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    4 là biểu thức lịch trình crontab để lên lịch cho tập lệnh chạy mỗi phút;
  • $ * * * * * /usr/bin/python python-script.py
    
    42 là đối số dòng lệnh để cho crontab biết vị trí của tệp thực thi;
  • $ * * * * * /usr/bin/python python-script.py
    
    43 là nơi đặt tập lệnh python của tôi;
  • $ * * * * * /usr/bin/python python-script.py
    
    44 là nơi cài đặt python. Bạn có thể tìm thấy nơi bạn đã cài đặt nó bằng cách sử dụng lệnh
    $ * * * * * /usr/bin/python python-script.py
    
    45 hoặc
    $ * * * * * /usr/bin/python python-script.py
    
    46 trong Terminal
  • $ * * * * * /usr/bin/python python-script.py
    
    47 là tên mà tôi đã đặt cho phần chia sẻ kịch bản ở trên

Chạy tự động hóa tập lệnh

Trong trình chỉnh sửa vi

Chuyển sang chế độ Chèn bằng cách nhấn

$ * * * * * /usr/bin/python python-script.py
48 để chỉnh sửa tệp

Thêm lệnh để thực thi tập lệnh Python

$ * * * * * /usr/bin/python python-script.py
4

Nhấn

$ * * * * * /usr/bin/python python-script.py
49 để thoát khỏi chế độ chỉnh sửa

Nhập

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
50 để lưu và thoát khỏi tệp.
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
51 có nghĩa là viết và
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
52 có nghĩa là bỏ

Sau khi viết crontab, bạn sẽ nhận được thông báo này

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
53 cho biết bạn đã tạo crontab

Nếu mọi việc suôn sẻ, bây giờ bạn sẽ có bài kiểm tra. txt trong thư mục của bạn với thời gian được thêm vào mỗi phút [nếu không, hãy xem Khắc phục sự cố]

Tóm tắt lại

Wow, đó là rất nhiều

Nói một cách đơn giản, đây là những gì bạn làm

  1. Tạo Tập lệnh Python của bạn;
  2. Mở ga;
  3. Viết
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    0 để tạo crontab;
  4. Nhấn
    $ * * * * * /usr/bin/python python-script.py
    
    48 để khởi chạy chế độ chỉnh sửa;
  5. Viết lệnh lịch trình
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    56;
  6. Nhấn
    $ * * * * * /usr/bin/python python-script.py
    
    49 để thoát khỏi chế độ chỉnh sửa;
  7. Viết
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    50 để viết crontab của bạn
  8. Để xóa công việc đang chạy
    1. Để xóa toàn bộ crontab. Chạy
      from datetime import datetime
      import os
      
      def write_file[filename,data]:
          if os.path.isfile[filename]:
              with open[filename, 'a'] as f:          
                  f.write['\n' + data]   
          else:
              with open[filename, 'w'] as f:                   
                  f.write[data]
      
      def print_time[]:   
          now = datetime.now[]
          current_time = now.strftime["%H:%M:%S"]
          data = "Current Time = " + current_time
          return data
      
      write_file['test.txt' , print_time[]]
      
      25
    2. Để xóa một công việc định kỳ. Đi đến
      from datetime import datetime
      import os
      
      def write_file[filename,data]:
          if os.path.isfile[filename]:
              with open[filename, 'a'] as f:          
                  f.write['\n' + data]   
          else:
              with open[filename, 'w'] as f:                   
                  f.write[data]
      
      def print_time[]:   
          now = datetime.now[]
          current_time = now.strftime["%H:%M:%S"]
          data = "Current Time = " + current_time
          return data
      
      write_file['test.txt' , print_time[]]
      
      0, nhấn
      $ * * * * * /usr/bin/python python-script.py
      
      48, nhấn
      from datetime import datetime
      import os
      
      def write_file[filename,data]:
          if os.path.isfile[filename]:
              with open[filename, 'a'] as f:          
                  f.write['\n' + data]   
          else:
              with open[filename, 'w'] as f:                   
                  f.write[data]
      
      def print_time[]:   
          now = datetime.now[]
          current_time = now.strftime["%H:%M:%S"]
          data = "Current Time = " + current_time
          return data
      
      write_file['test.txt' , print_time[]]
      
      72 và nhấn
      from datetime import datetime
      import os
      
      def write_file[filename,data]:
          if os.path.isfile[filename]:
              with open[filename, 'a'] as f:          
                  f.write['\n' + data]   
          else:
              with open[filename, 'w'] as f:                   
                  f.write[data]
      
      def print_time[]:   
          now = datetime.now[]
          current_time = now.strftime["%H:%M:%S"]
          data = "Current Time = " + current_time
          return data
      
      write_file['test.txt' , print_time[]]
      
      50 để ghi tệp

Hướng dẫn bổ sung

Xử lý sự cố

Bất cứ khi nào bạn gặp lỗi với một công việc định kỳ, bạn sẽ nhận được một thư trong thiết bị đầu cuối có nội dung “

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
74“. Bạn có thể đọc thư bằng lệnh
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
75. Sử dụng số bên cạnh thư để kiểm tra thông báo lỗi

Nhìn vào thông báo mà bạn nhận được để tìm hiểu về lỗi

Để xóa một tin nhắn, hãy sử dụng

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
76 hoặc để xóa tất cả, hãy sử dụng
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
77. Để thoát thư, hãy sử dụng
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
52

không được phép vận hành

Bạn có thể gặp lỗi “[Errno 1] Thao tác không được phép” trong MacOS khi bạn cố chạy một công việc định kỳ

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
5

Sau đây là cách Fix Lỗi “Operation not allow” trong Terminal cho Mac OS

Bạn sẽ cần cấp quyền truy cập toàn bộ đĩa vào thiết bị đầu cuối và CRON như trong giải pháp này

  1. Trong menu  Apple, chọn
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    79 >
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    60
  2. Chuyển đến
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    61 ở phía bên trái của bảng điều khiển
  3. Nhấp vào khóa để thực hiện thay đổi
  4. Nhấp vào dấu Cộng [
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    62]
  5. Chuyển đến ________ 663 > ________ 664 > ________ 665
  6. Bấm lại vào dấu [+];
  7. Nhấn
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    66 và di chuyển đến
    from datetime import datetime
    import os
    
    def write_file[filename,data]:
        if os.path.isfile[filename]:
            with open[filename, 'a'] as f:          
                f.write['\n' + data]   
        else:
            with open[filename, 'w'] as f:                   
                f.write[data]
    
    def print_time[]:   
        now = datetime.now[]
        current_time = now.strftime["%H:%M:%S"]
        data = "Current Time = " + current_time
        return data
    
    write_file['test.txt' , print_time[]]
    
    67
  8. Khởi động lại máy tính

Quyền bị từ chối

Cron cần quyền truy cập vào vị trí thư mục mà bạn làm việc. Nhiều công ty sẽ hạn chế quyền truy cập vào các vị trí trên màn hình của bạn hoặc sẽ có thư mục

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
68 của bạn trong một máy chủ nội bộ để sao lưu màn hình của bạn

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
7

Đây là cách khắc phục lỗi "Quyền bị từ chối"

Chỉ cần di chuyển tập lệnh của bạn đến đường dẫn người dùng

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
22 để xem liệu bạn có còn gặp lỗi khi chạy tập lệnh từ vị trí đó không

Giết một tác vụ Cron hiện đang chạy

Giả sử bạn đã tạo một tập lệnh Python và chạy nó hàng ngày bằng CRON, nhưng thật không may, một lỗi trong mã của bạn đã tạo ra một vòng lặp vô hạn. Làm thế nào bạn có thể dừng nó mà không tắt máy tính của bạn?

Bạn có thể bắt đầu bằng cách tìm bất kỳ tập lệnh python nào hiện đang chạy. Trong loại Terminal

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
6

Bây giờ, bạn sẽ nhận được một vài dòng có cấu trúc này

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
8

Số đầu tiên bạn nhìn thấy trên mỗi dòng là ID quy trình của bạn. Ở trên tôi có hai PID.

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
80 và
from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
81

Nếu tôi muốn tắt tiến trình đầu tiên, tôi sẽ sử dụng dòng này trong Terminal

from datetime import datetime
import os

def write_file[filename,data]:
    if os.path.isfile[filename]:
        with open[filename, 'a'] as f:          
            f.write['\n' + data]   
    else:
        with open[filename, 'w'] as f:                   
            f.write[data]

def print_time[]:   
    now = datetime.now[]
    current_time = now.strftime["%H:%M:%S"]
    data = "Current Time = " + current_time
    return data

write_file['test.txt' , print_time[]]
1

Bảng mã Crontab

crontab -eChỉnh sửa crontabcrontab hiện tại -lHiển thị crontabcrontab hiện tại -rXóa crontabcrontab hiện tại -iXóa crontab với lời nhắc xác nhậncrontab -uHiển thị người dùng có crontab đang được tương tác với pythonTìm đường dẫn tuyệt đối của tệp thực thi Python

Sự kết luận

Đó là nó. Bạn đã học cách chạy một công việc định kỳ trên mac để tự động hóa SEO của bạn bằng Python

5/5 - [7 phiếu]

Jean-Christophe Chouinard

Nhà chiến lược SEO tại Tripadvisor, ex-Seek [Melbourne, Úc]. Chuyên về kỹ thuật SEO. Trong nhiệm vụ lập trình SEO cho các tổ chức lớn thông qua việc sử dụng Python, R và máy học

Chủ Đề