linux服务器ubuntu定时任务cron设置每秒执行

这篇具有很好参考价值的文章主要介绍了linux服务器ubuntu定时任务cron设置每秒执行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

后端的同学经常会遇到在服务器做一些定时脚本处理,比如定时清理日志,定时请求某个接口做特殊的业务处理,大多数linux版本都会带cron服务,以ubuntu服务器做个示例。


一、cron介绍

cron 是一个在 Unix-like 操作系统中用于定时执行任务的工具。它是 “Chronos”(希腊语,意为时间)的缩写。cron 允许用户根据一定的时间间隔、日期或特定的时间点自动运行预定的任务,这些任务通常是脚本或命令。

以下是 cron 的基本概念和使用方法:

  1. Cron 表达式: 用户通过编写称为 “Cron 表达式” 的字符串来指定任务的执行时间。这个表达式包含了分钟、小时、日期、月份和星期几等信息,以及需要运行的命令或脚本。Cron 表达式的格式为:

    分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期几(0-6) 命令
    

    例如,0 2 * * * /usr/bin/my_script 表示在每天凌晨 2 点执行 /usr/bin/my_script

  2. 用户的 Crontab 文件: 每个用户都可以有自己的 crontab 文件,用于定义该用户的定时任务。通过 crontab 命令,用户可以编辑、添加、删除自己的定时任务。

    • crontab -e:编辑当前用户的 crontab 文件。
    • crontab -l:列出当前用户的 crontab 内容。
    • crontab -r:删除当前用户的 crontab 文件。
  3. 系统的 Crontab 文件: 除了每个用户的 crontab 文件,系统还可以有一个全局的 crontab 文件,通常存储在 /etc/crontab/etc/cron.d/ 中。这些任务是以 root 用户的身份执行的,因此可以用于执行系统级别的任务。

  4. Anacron: 有时,由于系统关机或休眠等原因,定时任务可能错过执行时间。为了解决这个问题,anacron 工具被引入,允许在系统启动时执行错过的任务。

  5. 日志: cron 会将执行的任务的输出信息发送到指定的用户邮件,如果任务产生输出的话。这可以通过在 crontab 文件中设置 MAILTO 变量来配置,也可以在命令行中使用 MAILTO=user@example.com

cron` 是一个强大的工具,使得在 Linux 系统上自动化任务变得简单。它在系统管理、日常维护和数据处理等方面都有广泛的应用。

二、添加定时任务进行测试

  1. 编写脚本
# 在/opt目录下创建一个test目录做测试
cd /opt && mkdir test && cd test 
# 创建一个sh脚本,并且添加可执行权限
touch test.sh && chmod +x ./test.sh
# 给脚本添加内容简单输出一个hello
vim test.sh
#下面这些都是加入到脚本里面的,如果对于bash脚本不熟悉的,先熟悉下bash脚本
#!/usr/bin/env bash
echo "hello"
# 调用test.sh 进行测试

linux服务器ubuntu定时任务cron设置每秒执行,linux,服务器,ubuntu
2. 添加cron进行测试

# 执行crontable -e 进入定时器编辑
crontable -e
# 添加定时任务,我这里添加一个每分钟执行一次,并输出结果到test.log,方便看下是否添加成功
*/1 * * * * /opt/test/test.sh > /opt/test/test.log
# 执行:wq保存退出
:wq

linux服务器ubuntu定时任务cron设置每秒执行,linux,服务器,ubuntu
3. cron最小的到每分钟执行一次,可以通过bash脚本,添加一个循环,实现每秒,或者几秒进行对应的操作,我设置的每5秒执行一次

#!/usr/bin/env bash
step=5 #间隔秒数
for ((i = 0; i < 60; i = (i + step))); do
    # 获取当前时间
    current_time=$(date +"%Y-%m-%d %H:%M:%S")

    # 打印当前时间
    echo "当前时间是: $current_time"    
    sleep $step
done
exit 0

linux服务器ubuntu定时任务cron设置每秒执行,linux,服务器,ubuntu
linux服务器ubuntu定时任务cron设置每秒执行,linux,服务器,ubuntu

总结

使用 cron 时,有一些注意事项可以帮助你确保任务按预期执行,并减少潜在的问题。以下是一些建议:

  1. 路径问题: cron 执行任务时可能不会设置与你的用户 shell 环境相同的环境变量。因此,确保你的脚本中使用的所有命令和文件路径都是绝对路径,或者在脚本开头设置合适的环境变量。

  2. 日志记录:cron 任务中,问题可能不容易被察觉,因此要确保你的任务会记录输出。在脚本中使用 echo 或者将输出重定向到文件,以便查看任务是否执行成功,或者在出现问题时查找错误信息。

  3. 用户权限: 如果 cron 任务依赖于某个用户的特权,请确保任务以正确的用户身份运行。你可以使用 sudo 或者在 crontab 文件中指定任务的用户。

  4. 相对路径: 当你使用相对路径时,确保 cron 执行任务的当前工作目录是你所期望的。最好使用绝对路径,以防止不同的工作目录导致问题。

  5. 安全性: 避免在 crontab 文件中设置过于频繁的任务,以免影响系统性能。此外,确保只有授权用户可以编辑 crontab 文件,以防止未经授权的修改。

  6. 任务执行时间: 考虑任务执行的时间,确保它不会与系统重启、备份或其他关键任务冲突。此外,注意任务的执行频率,确保不会产生不必要的负载。

  7. 环境变量: 如果你的任务依赖于特定的环境变量,最好在 crontab 文件中明确设置这些变量。这可以通过在 crontab 文件的顶部添加类似于 SHELL=/bin/bash 和其他环境变量的行来完成。

  8. 注意 crontab 语法: 使用正确的 crontab 语法是非常重要的。检查你的 crontab 表达式确保它符合预期。可以使用在线的 crontab 表达式生成器来帮助创建正确的语法。

  9. 重启 cron 服务: 如果你修改了 /etc/crontab 文件或者其他系统级别的 crontab 文件,可能需要重启 cron 服务以使更改生效。

  10. 考虑邮件通知: 如果你希望在任务执行时收到通知,可以通过在 crontab 文件中设置 MAILTO 变量来配置邮件通知。这样,任何任务的输出都会通过邮件发送给指定的用户。

通过注意这些事项,你可以更好地管理和调试 cron 任务,确保它们按照预期执行。文章来源地址https://www.toymoban.com/news/detail-787139.html

到了这里,关于linux服务器ubuntu定时任务cron设置每秒执行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux cron定时任务常用方法

    项目 含义 范围 第一个\\\"*\\\" 一小时当中的第几分钟(minute) 0~59 第二个\\\"*\\\" 一天当中的第几小时(hour) 0~23 第三个\\\"*\\\" 一个月当中的第几天(day) 1~31 第四个\\\"*\\\" 一年当中的第几个月(month) 1~12 第五个\\\"*\\\" 一周当中的星期几(week) 0~7(0和7都代表星期日) 特殊符号 含义 *(星号)

    2024年02月02日
    浏览(38)
  • Linux学习笔记-Ubuntu下使用Crontab设置定时任务

    白衣沽酒绮罗生 百代繁华一朝都,谁非过客;千秋明月吹角寒,花是主人。 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο

    2024年02月04日
    浏览(33)
  • 解决定时任务在多台服务器上重复执行的问题?

    在我们使用定时任务部署在单台服务器的时候,没有问题 但是当我们使用多台服务器执行这个定时任务的时候,就会对数据产生影响 1、使用redis的过期机制和分布式锁 首先添加依赖: 配置redis的信息: 在我们的具体实现业务上: 该方法比较推荐,简单,对业务逻辑的改变

    2024年02月13日
    浏览(42)
  • 开源:Taurus.DTS 微服务分布式任务框架,支持即时任务、延时任务、Cron表达式定时任务和广播任务

    在发布完:开源:Taurus.DTC 微服务分布式事务框架,支持 .Net 和 .Net Core 双系列版本,之后想想,好像除了事务外,感觉里面多了一个任务发布订阅的基础功能。 本想既然都有了基础发布订阅功能了,那要不要顺带加上延时发布功能呢?加上了会不会让事务组件不纯了? 经过

    2024年01月21日
    浏览(34)
  • 开源:Taurus.DTS 微服务分布式任务框架,支持即时任务、延时任务、Cron表达式定时任务和广播任务。

    在发布完:开源:Taurus.DTC 微服务分布式事务框架,支持 .Net 和 .Net Core 双系列版本,之后想想,好像除了事务外,感觉里面多了一个任务发布订阅的基础功能。 本想既然都有了基础发布订阅功能了,那要不要顺带加上延时发布功能呢?加上了会不会让事务组件不纯了? 经过

    2024年01月18日
    浏览(39)
  • 通过定时任务+sh脚本方式实现服务器日志文件异机备份

    等保要求服务器A日志(服务器、数据库、后端、nginx、redis等)备份在另外一台服务器B上 通过定时任务+sh脚本+scp命令,实现定时执行脚本,将文件备份到另外一台服务器上 step1、准备工作 服务器A ipA 服务器B ipB step2、脚本命令backup.sh 服务器A上,以nginx日志为例 step3、配对秘钥

    2024年02月16日
    浏览(29)
  • 在linux上启动、重启、查询、停止java服务脚本,并且设置定时任务自动执行

    以下代码来源于另一位博主,在实践过程中需要设置定时任务,所以遇到一些问题,把没有写清楚的地方优化了一下。 我们把上面的脚本复制到以下目录的脚本文件/data/www/shtools/startmanage.sh,执行命令可以得到不同的结果。 设置的三个定时任务运行脚本, 第一个是0 3 * * *

    2024年02月07日
    浏览(44)
  • linux定时删除服务器日志

    不说废话。直接进入操作流程 linux 定时任务是用的crontab 查看 crontab是否启动 dead 死的 启动crontab 再次查看状态 running  运转的 查看 crontab 查看 crontab任务 编辑 crontab任务 创建了一个任务  0 1 * * *  sh /workspace/java/del_log/dele_log.sh 每天1点自动执行 其中: 第一个号表示时间中的

    2024年02月09日
    浏览(36)
  • Linux服务器定时执行脚本清理日志

    程序的日志不正确或者启动脚本命令不正确,随着程序的持续运行,日志文件越来越大,持续占用设备硬盘,如果定期手动清理日志又比较占用大脑CPU和内存,如果忘了就是事故,所以写一个定时执行的脚本去清理日志很有必要。 清理日志有两种方式,一种是清空文件,主要

    2024年02月05日
    浏览(36)
  • ubuntu 代理服务器的设置

    准备: 具备公网IP服务器(Ubuntu 18.04.4 LTS,阿里云) 本地计算机(Ubuntu 20.04 LTS) 操作: 1.在服务器安装程序tinyproxy. apt update apt install tinyproxy 2.在服务器打开配置文件 vim /etc/tinyproxy/tinyproxy.conf 3.在配置文件中查找以下参数,并进行更改 #定义监听端口,默认端口为8888,当然

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包