網站首頁 編程語言 正文
一、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
相關推薦
- 2022-04-28 SpringBoot?整合mongoDB并自定義連接池的示例代碼_MongoDB
- 2023-12-09 添加依賴時,出現了此問題maven Cannot resolve org.apache.dubbo:
- 2023-03-15 React受控組件與非受控組件實例分析講解_React
- 2022-05-23 ELK與Grafana聯合打造可視化監控來分析nginx日志_nginx
- 2022-07-06 如何使用Python?OpenCV提取物體輪廓詳解_python
- 2022-05-10 在 VSCode 中如何設置默認的瀏覽器為Chrome或Firefox
- 2022-02-14 同一個docker鏡像,如何拉起多個docker container?
- 2022-12-03 SQL?Server如何通過SQL語句直接操作另一臺服務器上的SQL?SERVER的數據_MsSql
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支