centos 自動(dòng)運(yùn)行python腳本和配置 Python 定時(shí)任務(wù)
一、centos 實(shí)現(xiàn)自動(dòng)運(yùn)行 Python 腳本
正式配置前,先編寫一段 Python 腳本,實(shí)現(xiàn)日志寫入文件操作:
import os import sys import logging current_path = os.getcwd() # 獲取當(dāng)前目錄 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中測(cè)試定時(shí)任務(wù)
使用 crontab
進(jìn)行定時(shí)任務(wù)的處理,如果沒有安裝可以自行百度進(jìn)行設(shè)置。
在正式使用 crontab 前,需要提前了解一下 crond , crond 和 crontab 是密切相關(guān)了, crond 是 linux 中用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,與windows的計(jì)劃任務(wù)類似, crontab 是一個(gè)編輯或者說是管理定時(shí)任務(wù)的工具。
簡單理解就是 crond是一個(gè)服務(wù),crontab是一個(gè)命令。
與之相關(guān)的命令有:
yum install crontabs
systemctl enable crond (開機(jī)啟動(dòng))
systemctl start crond(啟動(dòng) `crond` 服務(wù))
systemctl stop crond(停止服務(wù))
systemctl restart crond (重啟服務(wù))
systemctl reload crond (重載配置文件)
systemctl status crond (查看狀態(tài))
測(cè)試狀態(tài)之后,展示為active(running)
即表示成功。
1.crontab文件
用戶所建立的crontab文件中,每一行都代表一項(xiàng)任務(wù),每行的每個(gè)字段代表一項(xiàng)設(shè)置,它的格式共分為六個(gè)字段,前五段是時(shí)間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:
minute hour day month week command
在正式開始前,可以使用 crontab -l 查看一下已經(jīng)開啟了哪些定時(shí)任務(wù)。
crontab -l
其余 crontab 常見的命令如下:
- crontab -u:設(shè)定某個(gè)用戶的crond服務(wù)
- crontab -e:編輯crontab文件(編輯定時(shí)任務(wù))
- crontab -r :刪除crontab文件(刪除定時(shí)任務(wù))
- crontab -i :刪除crontab文件提醒用戶(刪除定時(shí)任務(wù))
2.詳細(xì)配置
上文已經(jīng)提及了一個(gè)定時(shí)任務(wù)的6個(gè)字段,其取值分別為:
minute hour day month week command
上述字段分別是:分,時(shí),日,月,周,命令
- 第1列表示分鐘1~59 每分鐘用 * 或者 */1 表示;
- 第2列表示小時(shí)1~23(0表示0點(diǎn));
- 第3列表示日期1~31;
- 第4列表示月份1~12;
- 第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天);
- 第6列要運(yùn)行的命令;
- *:任意時(shí)間,可以代表00-23小時(shí)或者00-12每月或者00-59分,例如 0 9 * * * cmd 表示每月每周每日的 9:00 都執(zhí)行cmd任務(wù);
- -:表示區(qū)間,是一個(gè)范圍,例如 00 17-19 * * * cmd,就是每天17, 18, 19點(diǎn)的整點(diǎn)執(zhí)行命令;
- ,:是分割時(shí)段,例如 30 1,3,5 * * * cmd,就是每天凌晨1點(diǎn)30,3點(diǎn)30,5點(diǎn)30都執(zhí)行命令;
- /n:n 為數(shù)字,表示分割,每隔 n 單位時(shí)間,可以看成除法,*/6 * * * * cmd,每隔6分鐘執(zhí)行一次。
3.設(shè)置定時(shí)任務(wù)
crontab -e
:直接寫入定時(shí)任務(wù)
*/1 1-2 * * * root /usr/bin/python3 /var/test1.py */1 1-2 * * * root /usr/bin/python3 /var/test2.py
vim /etc/crontab
:文件形式添加任務(wù)
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
兩種方法的區(qū)別:
crontab -e
對(duì)應(yīng)的是用戶級(jí), vim /etc/crontab 對(duì)應(yīng)的系統(tǒng)級(jí)的。crontab -e
與 vim /etc/crontab 修改語法格式不一樣,后者多一個(gè)user指定。
查看文件的權(quán)限:
ls /etc/crontab -lh
查看任務(wù)是否添加:
crontab -l -u root
在 centos 查找文件:
find / -name xxxx.conf # 在根目錄查找 find /var -name xxxx.conf # 在 var 目錄查找
到此這篇關(guān)于centos 自動(dòng)運(yùn)行python腳本和配置 Python 定時(shí)任務(wù)的文章就介紹到這了,更多相關(guān)centos 運(yùn)行python腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中的jquery PyQuery庫使用小結(jié)
這篇文章主要介紹了Python中的jquery PyQuery庫使用小結(jié),需要的朋友可以參考下2014-05-05Python實(shí)現(xiàn)快速排序算法及去重的快速排序的簡單示例
quick sort快速排序是一種再基礎(chǔ)不過的排序算法,使用Python代碼寫起來相當(dāng)簡潔,這里我們就來看一下Python實(shí)現(xiàn)快速排序算法及去重的快速排序的簡單示例:2016-06-06Python基礎(chǔ)知識(shí)點(diǎn) 初識(shí)Python.md
在本篇文章中我們給大家總結(jié)了關(guān)于Python基礎(chǔ)知識(shí)點(diǎn),通過初識(shí)Python.md的相關(guān)內(nèi)容分享給Python初學(xué)者,一起來看下吧。2019-05-05Python在內(nèi)網(wǎng)安裝python第三方包(庫)的方法
日常我們工作的計(jì)算機(jī)環(huán)境是內(nèi)網(wǎng),做項(xiàng)目需要安裝python?第三方庫,在外網(wǎng)一般使用"pip?install?包名"很快就安裝上了,但是在內(nèi)網(wǎng)無法連接pypi網(wǎng)站或者國內(nèi)鏡像,那該如何安裝呢,下面小編給大家?guī)砹薖ython如何在內(nèi)網(wǎng)安裝python第三方包庫,感興趣的朋友一起看看吧2024-01-01Python列表之間的數(shù)字與字符轉(zhuǎn)化實(shí)例
在python列表操作中,面對(duì)需要把列表中的字符串轉(zhuǎn)為禮拜的操作,無需強(qiáng)轉(zhuǎn),通過簡單的幾步就可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Python列表之間的數(shù)字與字符轉(zhuǎn)化的相關(guān)資料,需要的朋友可以參考下2023-02-02