Linux中定时任务

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

Linux中定时任务和任务调度

修改时间

自定义时间

# 设置时间为 23年的8月7号
date -s 09/09/23
#设置时间为 14:20:50
date -s 14:20:50

自动更新时间

yum -y install ntp
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
/usr/sbin/ntpdate -u pool.ntp.org

crond 任务调度

是指系统某个时间执行的特定命令或程序

  • 任务调度分类:
    1. 系统工作:有些重要的工作必须周而复始的运行
    2. 个别用户工作

命令介绍

crontab [选项]
选项 含义
-e 编辑定时任务
-l 查询任务
快速入门
# 设置任务调度文件
/etc/crontab
# 设置个人任务调度
crontab -e
# 例如:每隔一分钟执行一次
*/1* * * * ls -l /etc/ > /temp/to.txt
参数细节说明
序号 含义 范围
第一个 * 一小时中的第几分钟 0-59
第二个 * 一天中的第几小时 0-23
第三个 * 一月当中的第几天 1-31
第四个 * 一年当中第几月 1-12
第五个 * 一周当中的星期几 0-7(0和7都代表星期日)

特殊符号说明

符号 含义
* 表示任何时间,一个 * 表示一小时中每分钟都执行一次
, 代表不连续的时间如:0 8,10,12 * * *表示每天8:00,10:00,12:00执行一次
- 连续的时间比如,0 5 * * 1-6表示周一到周六执行
*/n 代表每隔多久执行一次,比如*/10 * * * * ,每隔十分钟执行一次

crontab 相关指令

# 终止任务调度
crontab -r
# 列出当前任务调度
crontab -l
# 重启任务调度
service crond restart

at定时任务

at命令是一次性定时计划任务,at守护进程atd会以后台模式运行,检查作业队列运行

默认情况下。atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行作业。

执行完一个任务后就不在执行了

早使用命令时,一定要保证进程的启动,可以使用相关指令来查看

# 查看atd进程是否启动
ps -ef | grep atd

命令介绍

at [选项] [时间]
选项 含义
-m 当任务完成后,给用户发邮件
-d atq别名
-v 现实任务将被执行的时间
-c 打印任务的内容到标准输出
-v 现实版本信息
-q<队列> 使用指定的队列
-f<文件> 从指定文件读入任务不是从标准输入读入
-t<时间参数> 以时间参数形式提交运行任务

输入完成后需要按两次ctrl + D两次

at时间定义

接受当天的hh:mm(小时:分钟)置顶,假如改时间已过去,那么就放在第二天执行,例如04:00

使用midnight(深夜),noon(中午),teatime(下午茶),模糊词语指定时间

采用12小时计时制,在后面加上am或者pm下午来说明上午还是下午

置顶命令执行的具体日期,置顶格式为month day(月 日)或mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)。指定格式为:now + count time-units,now就是当前时间,time-units就是时间单位,几天,几小时。例如:

now + 5 minutes

直接使用todaytomorrw来制定完成命令的时间。

删除任务

atrm [任务编号]

定时备份数据库

mysql备份格式

mysqldump -uroot -p密码 数据库名 >> /wwww/mysql-backups/db.sql

定时备份

执行写好的sh脚本文件

# 进入任务调度文件
crontab -e
# 每隔一分钟执行一次,并出日志
*/1 * * * * /root/Documents/test.sh >> /root/Documents/test-sh.log
# 每天1点06分备份
6 1 * * * /www/backup/database/mysql.sh >> /www/backup/database/mysql/backup.log

备份脚本文件

sh配置文件文章来源地址https://www.toymoban.com/news/detail-704041.html

#!/bin/bash

# 备份目录
BACKUP=/root/Documents/db
# 当前时间
DATETIME=$(date +%Y-%m-%d_%H\:%M\:%S)
# 当前日期
DIR_DATE=$(date +%Y-%m-%d)

# 数据库名称
DATABASE_NAME=easybbs
# 数据库地址
HOST=localhost
# 数据库用户名
DATABAS_USERNAME=root
#数据库密码
DATABAS_PASSWORD=你的密码

# 文件目录名=[备份目录]+[数据库名称]+[当前日期]
DIR_NAME=${BACKUP}/${DATABASE_NAME}/${DIR_DATE} 
# 数据库备份目录=[备份目录]+[数据库名称]
EASYBBS_DIR=${BACKUP}/${DATABASE_NAME}
# SQL文件名 
SQL_FILENAME=$DATETIME.sql.gz

echo "目录:$DIR_NAME"
echo "SQL文件名:$SQL_FILENAME"

# 创建备份目录,如果不存在,就创建,注意要加空格!!!
[ ! -d "${DIR_NAME}" ] && mkdir -p "${DIR_NAME}"

# 备份数据库
mysqldump -u${DATABAS_USERNAME} -p${DATABAS_PASSWORD} --host=${HOST} -q -R --databases ${DATABASE_NAME} | gzip > ${DIR_NAME}/${SQL_FILENAME}

# 将文件处理成压缩包-tar.gz
cd ${DIR_NAME}
tar -zcvf ${EASYBBS_DIR}/$DIR_DATE.tar.gz *

# 删除超过1天的文件夹 -atime是最后一次访问 -ctime是最后一次修改
DAYS_AGO=$(date -d "1 days ago" +%Y-%m-%d)
[ -d "${DAYS_AGO}" ] && mkdir -p "${DAYS_AGO}"
# find ${BACKUP}/${DATABASE_NAME} -ctime +1 -name "${DAYS_AGO}" -exec rm {} \;
# 或者删除 tar压缩包文件
# find ${BACKUP}/${DATABASE_NAME} -ctime +10 -name "*.tar.gz" -exec rm -rf {} \;

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

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

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

相关文章

  • Linux systemd 定时任务

    哈喽大家好,我是咸鱼。 说到 Linux 定时任务,大家用得最多的就是 crond 服务,但其实 systemd 也有类似的功能。我们不但可以通过 systemd 来管理服务,还能设置定时任务,那就是 systemd timer。 与 crond 相比,systemd 定时任务具有以下优点: 更高的精度:systemd 定时任务可以精确

    2024年04月15日
    浏览(26)
  • Linux定时任务

    注意:如果想要在Linux操作系统中执行定时任务需要先保证 crond 服务是开启的(默认是开启的) 1.通过制定、编辑和开启定时任务。添加定时任何的格式是: 时间 需要执行的任务

    2024年02月06日
    浏览(32)
  • Linux 设置定时任务

    🎈 作者: Linux猿 🎈 简介: CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! 🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬 本篇文章主要介绍在 Linux 环境下如何设置定时任务。  本文使用 CentOS 7.9 进行

    2024年02月15日
    浏览(38)
  • linux设置定时任务

    在Linux系统中设置定时任务通常使用的是Cron服务。以下是创建和管理定时任务的基本步骤: 打开crontab文件编辑器 : 使用命令行工具编辑用户级别的cron任务列表: 添加定时任务 : 在编辑器中,按照特定格式定义你的定时任务。每一行代表一个单独的任务,其格式如下:  

    2024年01月20日
    浏览(45)
  • linux中设置定时任务

    可以使用 Linux 中的 crontab 工具来设置定时任务,具体步骤如下: 打开终端,输入 crontab -e 命令,打开 crontab 编辑器。 在编辑器中,输入 30 9 * * 1-5 command ,其中 30 9 * * 1-5 表示每周一到周五的 9:30, command 表示需要执行的命令。 编辑完成后,保存并退出编辑器即可。 例如,如

    2024年02月16日
    浏览(44)
  • 【linux】定时任务讲解

    比如从现在开始,设置30分钟后自动关机,这时就可以使用at命令 第一行是定义从现在开始算,30分钟后安排一个任务; 第二行是到了时间后执行关机操作; 第三行是 EOT,这不是使用键盘输入的,而是使用了组合键Ctrl+D,表示输入结束; 第四行是系统提示有一个任务将在2

    2024年02月10日
    浏览(49)
  • 【Linux】crontab 定时任务

    当你需要在Linux系统中定期执行某些任务时,crontab(cron table)是一个非常有用的工具。它允许你根据预定的时间表创建和管理定时任务。 按照进程的功能和运行的程序分类,进程可划分为两大类。 系统进程 :可以执行 内存资源分配和进程切换等 管理工作;而且,该进程的

    2024年02月10日
    浏览(54)
  • linux- 定时任务清理日志

      linux是一个很能自动产生文件的系统,在实际部署运行中,发现日志文件会占用大量内存,且很多日志文件过了时效是可以删除的。本文介绍了CentOS自动删除n天前日志、邮件、备份等相关文件的过程。 查找命令: find 对应目录 -mtime +天数 -name \\\"文件名匹配逻辑\\\" 具体参数

    2024年02月14日
    浏览(42)
  • Crontab(定时任务)使用: Linux-Centos7使用crontab制定定时任务,定时执行某任务

    参考:https://blog.csdn.net/m0_49605975/article/details/120701771 1.用yum命令安装Crontab 2.启动,关闭,重启 3.设置开机启动 1.设置定时任务-进入编辑模式 -和vim操作一至 2.查看定时任务列表 3.添加定时任务 样例: 添加一个定时任务,定时清空某个文件夹里面日志文件的内容 3.1 编写一个清

    2024年02月01日
    浏览(72)
  • Linux中的定时任务(案例:定时备份和清空)

    Linux中的定时任务(案例:定时备份和清空) Linux crontab 是用来定期执行程序的命令, 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 crontab -e :打开文字编辑器来设定时

    2024年01月18日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包