定时执行本地py脚本

思路

➡️终端通过crontab命令定时执行sh脚本
➡️sh脚本执行py脚本,sh的执行日志记入log
➡️py脚本的执行日志记入log

具体步骤

  1. 编写py脚本,设置执行日志写入log
import logging

# 函数定义
def get_data(date,id):
	logging.info(f'开始执行')

	#生成dataframe等
	...
	
	# 结果写入log文件
	logging.info(f'result_df, 输出结果{result_df}')
	
	logging.info(f'执行完成')

# 主函数
if __name__ == "__main__":
	# 接收来自sh的参数
    date = sys.argv[1]
    id = sys.argv[2]
    
    # 函数调用
	get_data(date,id) 
  1. shell脚本调用py脚本(传递py需要的参数)
#!/bin/bash

# 获取参数
DATE=$1
ID=$2

# 切换目录(如有需要)
cd /path/to/your/script

# 日志路径(可选)
LOG_FILE="./run.log"

# 写入日志
echo "开始执行任务,时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$LOG_FILE"
echo "参数 DATE=$DATE, ID=$CID" >> "$LOG_FILE"

# 执行 Python 脚本
python run_task.py "$DATE" "$ID" >> "$LOG_FILE" 2>&1

echo "任务完成时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$LOG_FILE"
echo "-------------------------------" >> "$LOG_FILE"
  1. 终端定时执行shell脚本

(1) 设置定时任务:
打开终端:command+空格-进入terminal
输入:crontab -e
按i键,进入编辑状态,
输入定时任务:30 12 * * * /bin/bash /path/xxx.sh >> /path/xxx.log 2>&1
按Esc键(退出编辑模式)
输入:wq,按enter回车保存退出

(2) 输入命令,查看定时任务是否设置成功:crontab -l

(3) 删除定时任务:
先查看 crontab -e
然后按下 dd(在 vim 中)或手动删除整行(在 nano 中)

(4) 保存并退出:
如果是 vim:按 Esc,输入 :wq 回车
如果是 nano:按 Ctrl + O 保存,回车;再按 Ctrl + X 退出

### 定时任务执行脚本 #### Linux 下的 Cron 设置 在 Linux 系统中,`crond` 是用于周期性执行任务的守护进程[^1]。通过 `crontab` 文件可以定义具体的定时任务表。以下是具体操作步骤: 1. **编辑 Crontab 文件** 使用命令 `crontab -e` 编辑当前用户的 crontab 文件。 2. **添加任务条目** 在文件中按照特定格式输入任务条目。例如,要每天凌晨 2 点运行一个 PHP 脚本 `/path/to/script.php`,可以在文件中加入以下内容: ```bash 0 2 * * * /usr/bin/php /path/to/script.php >> /var/log/cron.log 2>&1 ``` 这里的字段含义依次为:分、时、日、月、星期。 3. **保存并退出** 保存修改后,系统会自动加载新的任务配置。 4. **查看现有任务** 可以使用 `crontab -l` 查看已有的定时任务列表。 对于更复杂的场景,比如需要管理多个任务或者动态调整任务时间,可以通过 API 工具如 PHP Cron Scheduler 来简化管理和维护工作[^2]。 --- #### Windows 下的任务计划程序 (Task Scheduler) 在 Windows 环境中,可以借助内置的任务计划程序 (`Task Scheduler`) 实现 Python 或其他脚本的自动化运行[^3]。以下是基本流程: 1. **打开任务计划程序** 按下 Win 键,在搜索框中输入 “任务计划程序”,然后启动它。 2. **创建新任务** 在右侧的操作栏中点击“创建任务”。 3. **填写基本信息** 输入任务名称和描述信息。 4. **设置触发器** 切换到“触发器”选项卡,点击新建按钮,设定任务何时开始(例如每日、每周或其他自定义条件)。 5. **指定动作** 移动至“操作”标签页,选择“启动程序”。如果目标是一个 `.py` 文件,则需指定解释器路径作为程序位置,并将脚本路径填入参数框内。例如: ```plaintext Program/Script: C:\Python39\python.exe Add arguments: D:\Scripts\my_script.py ``` 6. **确认权限及其他高级属性** 最后切换到“条件”与“设置”部分检查是否有特殊需求未满足的地方再确定完成整个过程即可生效。 7. **测试任务** 创建完成后可以直接右键单击刚建立的新项目尝试立即运行验证效果是否正常运作无误。 --- #### 示例代码片段 下面分别展示了一个简单的 Linux 和 Windows 平台上的定时任务实例。 ##### Linux 中的 Cron 表达式示例 ```bash # 每隔五分钟打印一次 "Hello from cron" */5 * * * * echo 'Hello from cron' >> ~/cron_output.txt ``` ##### Windows 上调用 Python 脚本的例子 假设有一个名为 `backup_data.py` 的备份数据逻辑存储于本地磁盘 E:\scripts 目录下,那么应该这样配置动作中的细节项: ```plaintext Program/Script: C:\Users\User\AppData\Local\Programs\Python\Python38\python.exe Add arguments: E:\scripts\backup_data.py --mode=full Start in: E:\scripts\ ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值