日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

centos?自動運行python腳本和配置?Python?定時任務_python

作者:夢想橡皮擦 ? 更新時間: 2022-05-18 編程語言

一、centos 實現自動運行 Python 腳本

正式配置前,先編寫一段 Python 腳本,實現日志寫入文件操作:

import os
import sys
import logging

current_path = os.getcwd() # 獲取當前目錄
logging.basicConfig(level=logging.INFO, ?
? ? ? ? ? ? ? ? ? ? filename=current_path + '/new.log',
? ? ? ? ? ? ? ? ? ? filemode='a',
? ? ? ? ? ? ? ? ? ? format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
? ? ? ? ? ? ? ? ? ? )
logging.info("寫入日志")

二、centos中測試定時任務

使用 crontab 進行定時任務的處理,如果沒有安裝可以自行百度進行設置。
在正式使用 crontab 前,需要提前了解一下 crond , crond 和 crontab 是密切相關了, crond 是 linux 中用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows的計劃任務類似, crontab 是一個編輯或者說是管理定時任務的工具。
簡單理解就是 crond是一個服務,crontab是一個命令。

與之相關的命令有:

yum install crontabs
systemctl enable crond (開機啟動)
systemctl start crond(啟動 `crond` 服務)
systemctl stop crond(停止服務)
systemctl restart crond ?(重啟服務)
systemctl reload ?crond (重載配置文件)
systemctl status crond (查看狀態)

測試狀態之后,展示為active(running) 即表示成功。

1.crontab文件

用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute hour day month week command

在正式開始前,可以使用 crontab -l 查看一下已經開啟了哪些定時任務。

crontab -l

其余 crontab 常見的命令如下:

  • crontab -u:設定某個用戶的crond服務
  • crontab -e:編輯crontab文件(編輯定時任務)
  • crontab -r :刪除crontab文件(刪除定時任務)
  • crontab -i :刪除crontab文件提醒用戶(刪除定時任務)

2.詳細配置

上文已經提及了一個定時任務的6個字段,其取值分別為:

minute hour day month week command

上述字段分別是:分,時,日,月,周,命令

  • 第1列表示分鐘1~59 每分鐘用 * 或者 */1 表示;
  • 第2列表示小時1~23(0表示0點);
  • 第3列表示日期1~31;
  • 第4列表示月份1~12;
  • 第5列標識號星期0~6(0表示星期天);
  • 第6列要運行的命令;
    • *:任意時間,可以代表00-23小時或者00-12每月或者00-59分,例如 0 9 * * * cmd 表示每月每周每日的 9:00 都執行cmd任務;
    • -:表示區間,是一個范圍,例如 00 17-19 * * * cmd,就是每天17, 18, 19點的整點執行命令;
    • ,:是分割時段,例如 30 1,3,5 * * * cmd,就是每天凌晨1點30,3點30,5點30都執行命令;
    • /n:n 為數字,表示分割,每隔 n 單位時間,可以看成除法,*/6 * * * * cmd,每隔6分鐘執行一次。

3.設置定時任務

crontab -e :直接寫入定時任務

*/1 1-2 * * * root /usr/bin/python3 /var/test1.py
*/1 1-2 * * * root /usr/bin/python3 /var/test2.py

vim /etc/crontab :文件形式添加任務

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# 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,apr ...
# | ?| ?| ?| ?.---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | ?| ?| ?| ?|
# * ?* ?* ?* ?* user-name ?command to be executed
1 * * * * /usr/bin/python3 /usr/test/test.py

重新加載配置:

service crond reload

重啟cron

service crond restart

兩種方法的區別:

  • crontab -e 對應的是用戶級, vim /etc/crontab 對應的系統級的。
  • crontab -e 與 vim /etc/crontab 修改語法格式不一樣,后者多一個user指定。

查看文件的權限:

ls /etc/crontab -lh

查看任務是否添加:

crontab -l -u root

在 centos 查找文件:

find / -name xxxx.conf # 在根目錄查找
find /var -name xxxx.conf # 在 var 目錄查找

原文鏈接:https://blog.51cto.com/cnca/5107124

欄目分類
最近更新