文章目录

  • 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中的计划任务相关推荐

  1. Linux中的计划任务—Crontab调度一次性执行的任务at/batch

    概述 前不久我们梳理了Linux中的计划任务-Crontab调度重复执行的任务,但是有些场景我们只是需要执行一次,执行完就结束任务该怎么办呢? 这里我们要用到linux提供的at/batch命令. 本 ...

  2. Linux中使用计划任务自动执行

    Linux中的计划任务 知识要点 计划任务的意义 计划任务分类 用户计划任务crontab 系统计划任务 计划任务使用注意事项 anacron服务介绍 计划任务的意义 1.计划任务 创建和管理在指 ...

  3. linux设置数据库定时备份,linux中使用计划任务进行数据库定期备份

    Linux上经常要使用cornd执行定时任务.如果对crontab掌握不是很熟悉,也可以直接使用宝塔面板进行一些简单的定时计划任务. 在我的云主 机上 安装了CentOS系统,并默认安装了宝塔管理面板 ...

  4. Linux中的计划任务—Crontab调度重复执行的任务

    文章目录 目标 背景介绍 Crontab是什么 Crontab实践 安装并检查Crontab服务 1.检查cron服务: 2.安装cron 案例实现 Crontab的基本组成 Crontab的配置文件 ...

  5. Linux中设置计划任务

    设置计划任务的作用 *为了实现某一时间完成某个指定任务,如定时备份某个文件和目录,定时删除某个文件和目录,定时启动某个服务等等 使用at设置计划任务,at命令是一次性的,完成某个定时任务之后,就失效了 ...

  6. 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)

    大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 . Yum软件包仓库操作(概念与实操) 一.RPM软件包管理 1.常见软件包类型 2.RPM包文件名特征 3.RP ...

  7. linux设置周期性计划任务,Linux中计划任务、周期性任务设置

    Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需 ...

  8. Linux 中多终端同步 history 记录

    很多文章都是第一时间在语雀进行了更新和发布,公众号的文章只是在语雀平台的基础上进行同步的,而且更新频率也会比语雀要慢.最近弃坑简书,入驻语雀,欢迎阅读原文来语雀一起交流学习. 基本认识 Linux 默 ...

  9. Linux 中 3 个文件打包上传和下载相关命令详解

    tar 命令 通过 SSH 访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的tar是麻雀虽小,五脏俱全,功能强大. 使用t ...

  10. 如何在 Linux 中查看目录大小?

    这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程. 搜索当前的 CentOS 或 RedHat 文件夹 您可以使 ...

最新文章

  1. 服务器错误配置文件的xml格式,IIS配置文件的XML格式不正确
  2. mysql自动备份脚本,及系统定时备份设置!
  3. STM32中IO口的8中工作模式
  4. 支付宝 php 返回false,支付宝php sdk验签rsaCheckV1不正确isSign一直返回false
  5. 职业规划纵向横向_金融行业之职业规划
  6. 中国机器人减速机行业十四五发展规划及未来需求预测报告2021-2027年
  7. python安装sqlite3_Python安装sqlite3
  8. 【机器视觉】机器视觉博客汇总
  9. 自适应小波阈值去噪python_基于python的小波阈值去噪算法
  10. java龟兔赛跑设计思路_JAVA程序设计(09)-----面对对象设计初级应用 龟兔赛跑
  11. php cdi_通过MicroProfile上下文传播增强了CDI上下文和隔板
  12. [JS][前端]修改文件input为button样式
  13. 618“后高考经济”数据:3C数码依旧是毕业季的首选礼品
  14. javascript的prototype继承问题
  15. ASP.NET的安全性
  16. 使用IBM SPSS Statistics常用图表附例演示讲解
  17. 步态识别之GaitSet
  18. 计算机组成原理补码位算法,[计算机组成原理] Booth算法 —— 补码一位乘法
  19. android lint
  20. Phyton安装MySQL驱动

热门文章

  1. 想自学一下程序员,该学些什么?
  2. BT和eMule协议的比较和分析
  3. php 控制骰子概率,jQuery+PHP实现的掷色子抽奖游戏实例
  4. 银行业务头条体系推广
  5. 四川师范大学地信概论(3- 空间数据模型)90分以上版本
  6. JSP登录中Session的用法
  7. Windows Server 2012 修复ms17-010漏洞提示 此更新不适用于你的计算机
  8. 矩阵乘法(幂次计算)
  9. gb28181简单实现sip信令服务器(java版基于springboot):三、sip摄像头注册(代码实现)
  10. 2022最新淘宝天猫商品sku精准库存(sku库存200)