linux使用cron定时运行python脚本及nohup后台运行python脚本

cron工具

乌班图系统中已经预装cron,若没有,直接apt-get安装

sudo apt-get update
sudo apt-get install cron

设置cron运行计划:

crontab -e

编写工具是vi

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
20 0 * * * /home/conda3/envs/count/bin/python /home/more/check.py

每一行都是一个单独的定时运行计划,可以看到以上只有一个运行计划:

20 0 * * * /home/conda3/envs/count/bin/python /home/more/check.py

Crontab是一个基于时间的任务调度程序,在Linux和其他Unix系统中广泛使用。Crontab使用由五个时间字段组成的语法,它们定义了执行任务的时间。以下是Crontab时间设置的详细说明:

  1. 分钟 (0-59)
  2. 小时 (0-23)
  3. 日 (1-31)
  4. 月 (1-12)
  5. 星期几 (0-6,其中0是星期天)

对于每个字段,您可以使用以下选项:

  • 星号(*):匹配所有值。例如,将星号用于小时字段将意味着任务每小时运行一次。
  • 逗号(,):指定多个值。例如,小时字段中使用逗号分隔符将允许您指定多个小时值(例如2,6,8)。
  • 连字符(-):指定一定的范围。例如,将月份字段中使用连字符分隔符将允许您指定一个月份范围(例如2-6)。
  • 正斜杠(/):指定间隔值。例如,将分钟字段中使用正斜杠分隔符将允许您指定每隔几分钟运行一次(例如*/15表示每隔15分钟运行一次)。

所以上面的计划的意思就算在每天的零点20分运行脚本。

因为用了conda环境,所以这里直接指定环境里的解释器运行脚本,即:

/home/conda3/envs/count/bin/python

后面即脚本的位置。

nohup工具

语法:

nohup python3 my_script.py > output.log 2>&1 &

同上面corn工具,python3直接用路径指定到conda环境里的解释器和脚本位置

上述命令中:

  • nohup:表示忽略挂起信号,使程序在后台运行;
  • 结尾的&:表示在后台运行命令。
  • > output.log 2>&1:简单说就算把你的print出来的信息、log的streamhandler的信息和raise的信息都输出到putput.log。这个命令是用来将标准输出和标准错误输出合并到一个文件中。其中,">" 符号表示将输出重定向到文件中,"output.log" 是文件名,表示输出重定向到名为 "output.log" 的文件中。而 "2>&1" 表示将标准错误输出(2)重定向到标准输出(1)中,也就是将错误信息也输出到 "output.log" 这个文件中。因此,整个命令的含义就是将脚本的标准输出和标准错误输出合并到名为 "output.log" 的文件中。

nohup工具能解决的最大麻烦是关闭连接终端后,程序依然能在后台运行,也就是不用一直开着终端连接,当然也是后台运行的好方法。corn工具则可以解决无人值守自动运行的问题。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Linux系统自带的crontab命令来定时运行Python脚本。具体步骤如下: 1. 编写Python脚本,并保存在指定的目录下。 2. 打开终端,输入以下命令进入crontab编辑模式: crontab -e 3. 在编辑模式下,输入以下命令来设置定时任务: * * * * * python /path/to/your/python/script.py 其中,* * * * * 表示定时任务的时间设置,依次为分、时、日、月、周几,每个字段的取值范围为-59、-23、1-31、1-12、-7(和7都表示周日),*表示任意值。 /path/to/your/python/script.py 表示要运行Python脚本的路径。 4. 保存并退出编辑模式,定时任务即可生效。 需要注意的是,crontab命令设置的定时任务会在后台自动运行,不会有任何提示或输出。如果需要查看定时任务的运行情况,可以使用以下命令: tail -f /var/log/syslog 在日志中搜索关键字“CRON”,即可查看定时任务的运行情况。 ### 回答2: 在Linux操作系统中,我们可以通过使用crontab命令来实现定时运行python脚本的功能。 Crontab是一种命令行工具,它可以帮助我们在指定的时间间隔内执行预定的任务。在Linux系统中,每个用户都可以使用crontab命令自定义cronCRON表)。cron表是一个文本文件,由多个部分组成,每个部分代表一个特定的细节,例如分钟、小时、日期、月份和星期几等。通过编辑cron表,我们可以指定Linux计划在何时运行脚本。 如何使用crontab运行Python脚本? 第一步:打开Cron表 在终端中运行以下命令来打开cron表: crontab -e 如果是第一次运行,则需要选择编辑器。建议选择nano或vim。 第二步:编辑Cron表 编辑cron表既可以指定频率又可以指定要运行的命令。例如定期每天运行Python脚本,可以在打开的Cron表文件中添加以下行: 0 0 * * * python /home/user/myscript.py 这行代码表示在每天的午夜0点运行/myscript.py脚本。您可以根据自己的需要、频率和时间间隔来编辑cron表。 第三步:保存并退出Cron表 完成编辑操作后,按Ctrl + X,然后按Y将做出的更改保存。 现在Python脚本已经配置好了并将在指定的时间间隔内自动运行。 总结: Linux操作系统中,我们可以通过使用crontab命令来实现定时运行python脚本的功能。首先我们需要打开cron表,然后编辑cron表以指定运行周期和要运行的命令。最后,将脚本保存并退出Cron表,即可启动定时任务,让Linux在指定的时间间隔内自动运行Python脚本。 ### 回答3: Linux操作系统可以通过crontab命令来实现定时运行Python脚本的功能。Crontab是一种在Unix和Linux操作系统中用于定期运行程序的工具。Crontab使用cron daemon作为后台进程,根据用户的设置自动执行任务。 下面是具体的步骤: 1. 首先需要创建自己的Python脚本,并保存到一个指定的目录下。比如我们将脚本命名为test.py,存放在/home/user1目录下。 2. 打开终端,输入命令crontab -e来编辑用户的crontab文件。如果是第一次使用,系统会提示选择编辑器,可以选择nano或者vim等。这里以nano为例。 3. 在打开的文件中,添加一行命令: `* * * * * cd /home/user1 && /usr/local/bin/python3 test.py >/dev/null 2>&1` 这行命令的含义是每分钟执行一次test.py脚本。星号表示每分钟都执行。cd /home/user1表示切换到用户目录下,/usr/local/bin/python3 test.py是执行Python脚本的命令。>/dev/null 2>&1是重定向命令,用于将所有输出信息重定向到空设备,防止邮件通知。 4. 保存并退出文件,系统会自动保存该crontab。命令行中会提示“crontab: installing new crontab”。 5. 接下来,可以使用命令crontab -l列出用户的所有crontab。如果看到刚才添加的命令,就说明设置成功了。 6. 如需修改、删除、增加任务,可再次进入编辑模式进行操作。 通过以上步骤,就可以实现定时运行Python脚本的功能。除了上述的每分钟执行一次,还可以按需设置其他定时执行方式,例如每小时、每天、每周等等。需要注意的是,Crontab命令“*”为通配符,表示任意值,可以使用10进制的数值代替,“0 * * * *”表示每小时0分执行一次,而“*/10 * * * *”表示每隔10分钟执行一次。在使用时需要根据自己的需求设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值