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