gpt4 book ai didi

Python:如何处理 'crontab' 命令?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:50 25 4
gpt4 key购买 nike

我们知道 crontab 命令用于 Linux 中的计划任务。

我想写一个 Python 脚本。它的功能是接收一些数据(这些数据与crontab设置有关)并执行'crontab'命令以重置用户的crontab文件的内容。

我知道如何在 Python 中执行外部 Linux 命令。但是当你执行crontab命令时(例如crontab -u xxx -e),你需要与编辑器交互来修改用户的crontab文件。 (假设我不知道文件在哪里。对于新用户,crontab 无论如何都会生成一个新文件。并且我没有以root 用户身份执行命令).

所以问题是,我怎样才能在 Python 中执行 crontab?有什么方法可以避免与编辑器交互以在 Python 中修改用户的 crontab 文件?

我的操作系统是 ubuntu 14.01。

最佳答案

你可以使用 python-crontab .

安装

sudo -H pip install python-crontab

概念

  • cron 是与用户相关的基于时间的作业调度程序。
  • 一个作业有一个命令和一个注释,并“附加”到一个 cron。
  • 作业 由它所附加的 cron 在给定时间执行。

代码示例

列出系统 cron 作业:

from crontab import CronTab
cron = CronTab(tabfile='/etc/crontab', user=False) # system users cron
# cron = CronTab(user=True) # current users cron
# cron = CronTab(user='username') # other users cron
for job in cron:
print(job)

创建一个新工作:

job = cron.new(command='/foo/bar', comment='SomeID')

启用/禁用作业:

job.enable()
job.enable(False)

通过评论查找现有工作:

iter = cron.find_comment('ID or some text')

删除项目::

cron.remove( job )
cron.remove_all('echo')
cron.remove_all(comment='foo')
cron.remove_all(time='*/2')

清除所有作业的整个 cron::

cron.remove_all()

关于Python:如何处理 'crontab' 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30318168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com