linux中的计划任务
文章目录
- linux中的计划任务
- 什么是计划任务
- 为什么需要计划任务
- 提出问题:
- crond进程
- crontab创建计划任务
- -e
- -l
- 查看是否有crond进程
- 存放计划任务的目录
- 取消计划任务
- 如何知道crond是否帮助我们去执行了计划任务
- 直接去文件夹里查看
- 查看日志 /var/log/cron
- 监控crond进程是否启动,如果没启动则启动
- 黑客添加了计划任务自动执行木马程序,如何找出来?
linux中的计划任务
什么是计划任务
按照计划准时准点去执行任务 --》 计划任务
例:闹钟:早上八点叫我起床
游戏服务器资源分析:
为什么需要计划任务
计划任务: 是必须的吗? --》可以不需要,靠人工解决
优势: 解放人力,提升效率,自动化执行
定时定点去执行脚本(程序)
提出问题:
计划任务存放在哪里?
计划任务的进程是否启动?
任何一个用户是否都可以创建计划任务
用户不登陆系统,计划任务是否会执行?不需要登录
黑客添加了计划任务自动执行木马程序,如何找出来?
crond进程
crond进程:负责linux里执行计划任务的程序,它是一直在运行的
每隔一分钟会检查下是否有任务执行。
使用crontab命令调用crond进程,设置按固定的周期(如每天,每周)重复执行预先计划好的任务。
crontab创建计划任务
计划任务: 定时去做某件事情 --》闹钟
-e
-e 编辑 edit
[root@master 417]# crontab -e 创建计划任务的命令 30 3 * * * bash /lianxi/417/backup_log.sh 每天凌晨3:30执行脚本backup_log.sh
[root@master 417]# crontab -l 查看计划任务 list
30 3 * * * bash /lianxi/417/backup_log.sh
[root@master 417]#
默认只能精确到分钟,最短时间间隔是1分钟
[root@master 417]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
20 8 23 7 * bash /lianxi/417/backup_log.sh
7月23日的早上8点20 执行脚本
/ 频率,间隔多久
, 单个的
-连续的
*/1 * * * * 每分钟去执行
*/5 * * * * 每5分钟去执行
30 8 3,8,10 * * 3号,8号,10号的8点30
30 8 8-18 * * 8号到18号的8点30
30 8-18 * * * 8点30 9点30 … 18点30
-l
[root@master 417]# crontab -l
30 3 * * * bash /lianxi/417/backup_log.sh
*/1 * * * * mkdir /tmp/sc$RANDOM
[root@master 417]#
查看是否有crond进程
方法一:service crond status
查看crond进程的状态
Active: active (running)表示进程正在运行
Active: inactive (dead)表示进程被杀死
[root@lier tmp]# service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since 二 2022-04-19 23:00:34 CST; 18h agoMain PID: 13198 (crond)CGroup: /system.slice/crond.service└─13198 /usr/sbin/crond -n4月 19 23:00:34 lier systemd[1]: Started Command Scheduler.
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (RANDOM_DELAY will be sc...)
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (running with inotify su...)
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (@reboot jobs will be ru...)
Hint: Some lines were ellipsized, use -l to show in full.
service crond stop可以关闭crond进程
service crond start可以打开crond进程
[root@lier tmp]# service crond stop
Redirecting to /bin/systemctl stop crond.service[root@lier tmp]# service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: inactive (dead) since 三 2022-04-20 17:05:38 CST; 14s agoProcess: 13198 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=0/SUCCESS)Main PID: 13198 (code=exited, status=0/SUCCESS)4月 19 23:00:34 lier systemd[1]: Started Command Scheduler.
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (RANDOM_DELAY will be sc...)
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (running with inotify su...)
4月 19 23:00:34 lier crond[13198]: (CRON) INFO (@reboot jobs will be ru...)
4月 20 17:05:38 lier systemd[1]: Stopping Command Scheduler...
4月 20 17:05:38 lier systemd[1]: Stopped Command Scheduler.
Hint: Some lines were ellipsized, use -l to show in full.
方法二:ps aux|grep crond
查看进程
[root@lier tmp]# ps aux |grep crond
root 23683 0.9 0.0 126388 1684 ? Ss 17:12 0:00 /usr/sbin/crond -n
root 23741 0.0 0.0 112824 988 pts/0 S+ 17:13 0:00 grep --color=auto crond
当过滤出crond进程的结果大于等于两行时说明有crond进程
[root@lier tmp]# ps aux |grep crond
root 23683 0.2 0.0 126388 1684 ? Ss 17:12 0:00 /usr/sbincrond -n
root 23907 0.0 0.0 112824 984 pts/0 S+ 17:16 0:00 grep --color=auto crond[root@lier tmp]# ps aux |grep crond|wc -l
2
[root@lier tmp]# service crond stop
Redirecting to /bin/systemctl stop crond.service
[root@lier tmp]# ps aux |grep crond
root 23958 0.0 0.0 112824 988 pts/0 S+ 17:17 0:00 grep --color=auto crond
[root@lier tmp]# ps aux |grep crond|wc -l
1
存放计划任务的目录
/var/spool/cron
每个用户都有一个对应的文件存放这个用户的计划任务
[root@lier tmp]# cd /var/spool/cron
[root@lier cron]# ls
root
[root@lier cron]# cat root
30 3 * * * bash /lianxi/tar/backup_log.sh
30 4 * * 3,5,7 bash /lianxi/backup.sh
新建一个用户创建计划任务
[root@master cron]# useradd liuchang
[root@master cron]# su - liuchang
[liuchang@master ~]$ pwd
/home/liuchang
[liuchang@master ~]$ ls
[liuchang@master ~]$ crontab -e
no crontab for liuchang - using an empty one
crontab: installing new crontab
[liuchang@master ~]$ crontab -l
*/1 * * * * mkdir ~/sc$RANDOM
普通用户不能查看计划任务目录/var/spool/cron,只能使用命令crontab -l查看自己的计划任务
[liuchang@master ~]$ cd /var/spool/cron/
-bash: cd: /var/spool/cron/: 权限不够
[liuchang@master ~]$ exit
登出
[root@master cron]# pwd
/var/spool/cron
[root@master cron]# ls
liuchang root
[root@master cron]#
[root@master cron]# cat liuchang
*/1 * * * * mkdir ~/sc$RANDOM
用户不登录系统,计划任务也会执行
取消计划任务
将计划任务注释掉(推荐)
[root@master cron]# vim liuchang
[root@master cron]# cat liuchang
#*/1 * * * * mkdir ~/sc$RANDOM
[root@master cron]#
[root@master cron]# crontab -l -u liuchang
#*/1 * * * * mkdir ~/sc$RANDOM
直接将计划任务删除也可以取消
如何知道crond是否帮助我们去执行了计划任务
直接去文件夹里查看
直接查看相应的文件夹是否有执行计划任务中的命令
查看日志 /var/log/cron
通过tail -f /var/log/cron动态监控是否执行了计划任务
监控crond进程是否启动,如果没启动则启动
如何编写一个脚本每隔1秒钟执行一次,去检测crond进程是否存在,如果不存在在,在屏幕输出crond is down?
[root@master 419]# vim monitor_crond.sh
[root@master 419]# cat monitor_crond.sh
#!/bin/bash
while true
doif service crond status &>/dev/null ;thenecho "crond is up"elseecho "crond is down"service crond start && echo "now crond is up"fisleep 1
done
[root@master 419]#
执行脚本,再另起一个终端停止crond进程,观察屏幕输出变化
[root@lier 419]# bash monitor_crond.sh
crond is up
crond is up
crond is up
crond is up
crond is up
crond is down
Redirecting to /bin/systemctl start crond.service
now crond is up
crond is up
crond is up
crond is up
crond is up
黑客添加了计划任务自动执行木马程序,如何找出来?
查看计划任务目录(var/spool/cron)中是否有可疑任务计划文件,然后查看root用户本身的计划任务,是否有可疑的脚本执行
查看/var/log/cron 日志
查看黑客是否搭计划任务的顺风车
[root@lier etc]# cd /etc/cron.daily/
[root@lier cron.daily]# ls
logrotate man-db.cron mlocate
查看mlocate文件,updatedb --》 locate
/etc/下面的这些文件夹里可以存放linux系统的计划任务
[root@lier etc]# cd /etc/cron.
cron.d/ cron.deny cron.monthly/
cron.daily/ cron.hourly/ cron.weekly/
黑客有可能将木马程序放到这些linux自己每天自动执行的计划任务里面去。
cron.daily/ : 每天要执行的计划任务cron.hourly/ : 存放linux系统每小时需要执行的任务cron.weekly/: 存放linux系统每周需要执行的计划任务cron.monthly/ :存放linux系统每月需要执行的计划任务cron.deny: 存放linux系统拒绝谁执行的计划任务
在/etc/cron.hourly中写一个脚本,每隔一个小时就会执行一次/etc/cron.hourly中的操作
[root@lier cron.hourly]# cat echo.sh
while true
doecho "hello,world"mkdir /tmp/lzy$RANDOM
done
另起一个终端动态监控crond进程
[root@lier cron.hourly]# tail -f /var/log/cron
Apr 19 23:00:34 [localhost] crond[13198]: (CRON) INFO (running with inotify support)
Apr 19 23:00:34 [localhost] crond[13198]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Apr 19 23:01:01 [localhost] CROND[13319]: (root) CMD (run-parts /etc/cron.hourly)
Apr 19 23:01:01 [localhost] run-parts(/etc/cron.hourly)[13319]: starting 0anacron
Apr 19 23:01:01 [localhost] run-parts(/etc/cron.hourly)[13328]: finished 0anacron
Apr 20 00:01:01 [localhost] CROND[18269]: (root) CMD (run-parts /etc/cron.hourly)
Apr 20 00:01:01 [localhost] run-parts(/etc/cron.hourly)[18269]: starting 0anacron
Apr 20 00:01:01 [localhost] anacron[18279]: Anacron started on 2022-04-20
Apr 20 00:01:01 [localhost] run-parts(/etc/cron.hourly)[18281]: finished 0anacron
Apr 20 00:01:01 [localhost] anacron[18279]: Normal exit (0 jobs run)
Apr 20 16:01:01 [localhost] CROND[21290]: (root) CMD (run-parts /etc/cron.hourly)
Apr 20 16:01:01 [localhost] run-parts(/etc/cron.hourly)[21290]: starting 0anacron
Apr 20 16:01:01 [localhost] anacron[21299]: Anacron started on 2022-04-20
Apr 20 16:01:01 [localhost] anacron[21299]: Will run job `cron.daily' in 29 min.
Apr 20 16:01:01 [localhost] anacron[21299]: Jobs will be executed sequentially
Apr 20 16:01:01 [localhost] run-parts(/etc/cron.hourly)[21301]: finished 0anacron
tc/cron.hourly)[21290]: starting 0anacron
Apr 20 16:01:01 [localhost] anacron[21299]: Anacron started on 2022-04-20
Apr 20 16:01:01 [localhost] anacron[21299]: Will run job `cron.daily’ in 29 min.
Apr 20 16:01:01 [localhost] anacron[21299]: Jobs will be executed sequentially
Apr 20 16:01:01 [localhost] run-parts(/etc/cron.hourly)[21301]: finished 0anacron
Apr 20 16:01:01 [localhost] CROND[21290]: (root) CMD (run-parts /etc/cron.hourly)表示执行了/etc/cron.hourly里的命令
linux中的计划任务相关推荐
- Linux中的计划任务—Crontab调度一次性执行的任务at/batch
概述 前不久我们梳理了Linux中的计划任务-Crontab调度重复执行的任务,但是有些场景我们只是需要执行一次,执行完就结束任务该怎么办呢? 这里我们要用到linux提供的at/batch命令. 本 ...
- Linux中使用计划任务自动执行
Linux中的计划任务 知识要点 计划任务的意义 计划任务分类 用户计划任务crontab 系统计划任务 计划任务使用注意事项 anacron服务介绍 计划任务的意义 1.计划任务 创建和管理在指 ...
- linux设置数据库定时备份,linux中使用计划任务进行数据库定期备份
Linux上经常要使用cornd执行定时任务.如果对crontab掌握不是很熟悉,也可以直接使用宝塔面板进行一些简单的定时计划任务. 在我的云主 机上 安装了CentOS系统,并默认安装了宝塔管理面板 ...
- Linux中的计划任务—Crontab调度重复执行的任务
文章目录 目标 背景介绍 Crontab是什么 Crontab实践 安装并检查Crontab服务 1.检查cron服务: 2.安装cron 案例实现 Crontab的基本组成 Crontab的配置文件 ...
- Linux中设置计划任务
设置计划任务的作用 *为了实现某一时间完成某个指定任务,如定时备份某个文件和目录,定时删除某个文件和目录,定时启动某个服务等等 使用at设置计划任务,at命令是一次性的,完成某个定时任务之后,就失效了 ...
- 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)
大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 . Yum软件包仓库操作(概念与实操) 一.RPM软件包管理 1.常见软件包类型 2.RPM包文件名特征 3.RP ...
- linux设置周期性计划任务,Linux中计划任务、周期性任务设置
Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需 ...
- Linux 中多终端同步 history 记录
很多文章都是第一时间在语雀进行了更新和发布,公众号的文章只是在语雀平台的基础上进行同步的,而且更新频率也会比语雀要慢.最近弃坑简书,入驻语雀,欢迎阅读原文来语雀一起交流学习. 基本认识 Linux 默 ...
- Linux 中 3 个文件打包上传和下载相关命令详解
tar 命令 通过 SSH 访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的tar是麻雀虽小,五脏俱全,功能强大. 使用t ...
- 如何在 Linux 中查看目录大小?
这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程. 搜索当前的 CentOS 或 RedHat 文件夹 您可以使 ...
最新文章
- 服务器错误配置文件的xml格式,IIS配置文件的XML格式不正确
- mysql自动备份脚本,及系统定时备份设置!
- STM32中IO口的8中工作模式
- 支付宝 php 返回false,支付宝php sdk验签rsaCheckV1不正确isSign一直返回false
- 职业规划纵向横向_金融行业之职业规划
- 中国机器人减速机行业十四五发展规划及未来需求预测报告2021-2027年
- python安装sqlite3_Python安装sqlite3
- 【机器视觉】机器视觉博客汇总
- 自适应小波阈值去噪python_基于python的小波阈值去噪算法
- java龟兔赛跑设计思路_JAVA程序设计(09)-----面对对象设计初级应用 龟兔赛跑
- php cdi_通过MicroProfile上下文传播增强了CDI上下文和隔板
- [JS][前端]修改文件input为button样式
- 618“后高考经济”数据:3C数码依旧是毕业季的首选礼品
- javascript的prototype继承问题
- ASP.NET的安全性
- 使用IBM SPSS Statistics常用图表附例演示讲解
- 步态识别之GaitSet
- 计算机组成原理补码位算法,[计算机组成原理] Booth算法 —— 补码一位乘法
- android lint
- Phyton安装MySQL驱动