[linux]三、计划任务(crontab、黑客怎么用计划任务获取我们的东西以及怎么排查、前台和后台、anacron服务)

目录

1、关于计划任务的一些知识

    1.1、为什么需要计划任务?

    1.2、停止和启动crond进程

    1.3、crontab

        1.3.1、时间周期设置和任务内容设置的格式

        1.3.2、创建计划任务的命令(crontab -e)和查看计划任务(crontab -l)

        1.3.3、关于计划任务的一些知识

        1.3.4、终止计划任务

    1.4、如何知道计划任务是否已经执行

        1.4.1、直接查看效果

        1.4.2、crontab的日志文件

2、关于计划任务的笔试题

    2.1、每个用户都有自己的计划任务

    2.2、这个用户没有登录是否计划任务也会执行?

        2.2.1、如果不想某个用户的计划任务执行?

        2.2.2、普通用户是否可以查看其他普通用户的计划任务(crontab -l -u + 用户)

    2.3、root用户是否可以去管理其他用户的计划任务?

    2.4、黑客是否会利用计划任务?

    2.5、你如何排查你的机器里是否有黑客添加的计划任务?

    2.6、计划任务里的命令执行不了

3、root用户给普通用户创建计划任务(crontab -e -u 用户)与普通用户自己创建计划任务

4、计划任务小练习

5、前台和后台

6、系统本身的计划任务

    6.1、关于黑客在linux计划任务中所要做的事(图解)

7、anacron服务

8、扩展练习——实现每秒新建一个文件夹(python编程) ​


1、关于计划任务的一些知识

服务器托管:将服务器放到联通或者电信、移动等公司的机房里提供上网服务
        机房:24小时不断电、不断网、恒温、防止黑客攻击

    1.1、为什么需要计划任务?

可以自动执行,不需要人干预,解放了人力,提高了效率


linux里的计划任务:
        crond进程:负责linux里执行计划任务的程序,crond进程是一直在linux系统里运行的
        每一分钟去检查下linux系统里的计划任务

    1.2、停止和启动crond进程

[root@fttsaxf ~]# ps aux|grep crond   # 查看crond进程是否存在
root        700  0.0  0.0 126388  1676 ?        Ss   16:24   0:00 /usr/sbin/crond -n
root       1707  0.0  0.0 112828   984 pts/0    S+   17:14   0:00 grep --color=auto crond
[root@fttsaxf ~]# service crond restart
Redirecting to /bin/systemctl restart crond.service # 前边两个字母是重定向的意思,后边的命令是现在最新的命令形式 service crond restart等价于systemctl stop crond
[root@fttsaxf ~]# service crond stop
Redirecting to /bin/systemctl stop crond.service

    1.3、crontab


 crontab是创建计划任务的命令,里边有如何定义计划任务的格式

[root@fttsaxf ~]# 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

 * 表示任意的时间

        1.3.1、时间周期设置和任务内容设置的格式


        1.3.2、创建计划任务的命令(crontab -e)和查看计划任务(crontab -l)

练习1:

 练习2:

 

 

        1.3.3、关于计划任务的一些知识

1)可以同一时间做多个吗?

是可以的。可以是一行一个计划,时间点是一样的;也可以都写到一个脚本里,直接做一个计划任务,推荐使用后边这个方法。
建议:最好不要同时做很多事情,会在一个时间点消耗服务器的cpu、内存、磁盘、带宽等资源。会给服务器制造很大的压力。

        1.3.4、终止计划任务

可以把计划任务注释掉(建议使用这个),也可以进行删除。

    1.4、如何知道计划任务是否已经执行

        1.4.1、直接查看效果

        1.4.2、crontab的日志文件

日志文件存在路径:/var/log/cron

记录哪些计划任务的生产、执行、修改等操作

 时间、地点、人物、发生的事情

CROND[22489]   CROND 是进程  [22489] 是crond的进程号,pid号

 CMD 表示执行命令  command

2、关于计划任务的笔试题

    2.1、每个用户都有自己的计划任务

每个用户的计划任务都会放在 /var/spool/cron 这个文件夹下边;每个用户都对应一个计划任务 

图片解释:最后两个命令都表示着,每小时执行一次

    2.2、这个用户没有登录是否计划任务也会执行?

不登录,计划任务任然会执行

 crond 这个进程会每隔一分钟就到/var/spool/cron文件夹下加载所有的文件,执行里边的计划任务

        2.2.1、如果不想某个用户的计划任务执行?

删除用户计划任务文件里的内容或者注释

        2.2.2、普通用户是否可以查看其他普通用户的计划任务(crontab -l -u + 用户)

默认情况下,只有root用户可以查看任何人的计划任务,其他用户只能看自己的

    2.3、root用户是否可以去管理其他用户的计划任务?

    2.4、黑客是否会利用计划任务?

是,他可能会创建新的用户,或者得到root用户的密码之后使用root用户来执行自己的计划

    2.5、你如何排查你的机器里是否有黑客添加的计划任务?

排查方法:到/var/spool/cron目录下查看是否有可以的计划任务文件;查看root用户本身的计划任务,是否有可疑的脚本执行

    2.6、计划任务里的命令执行不了

是PATH变量的问题,建议使用命令的绝对路径


图片解释:这两个PATH变量的值是不一样的

3、root用户给普通用户创建计划任务(crontab -e -u 用户)与普通用户自己创建计划任务

4、计划任务小练习

练习一:

 练习二:

 

如果有相同的文件的时候,使用cp命令的时候,系统会给予提醒,我们输入y就会执行覆盖,之前的同名文件。但是我们在后台不能输入y。所以要这样:

这样是直接使用命令的绝对路径来运行这个cp命令,因为我们直接使用cp命令是使用的别名"cp -i",-i,就是使用这个命令的时候,会提醒使用的人。

思考题:

1)如何查看这个机器里有哪些用户都创建了计划任务?

/var/spool/cron 中的这些文件名都对应着用户创建的计划任务

2)如何删除某个用户的计划任务?

把任务注释掉

5、前台和后台

计划任务执行脚本的时候,是在后台执行的,我们人看不到

前台:我们看的到的界面

后台:linux系统的后边执行,我们是看不到的,但是有进程可以看到,只是看不到界面。
在linux里命令后面借一个&符号,就是将这条命令放到后台执行

[root@fttsaxf linux]# vim create_dir_v2.sh  & #把这个程序放在后台执行
[1] 1840
[root@fttsaxf linux]# jobs  # 查看放到后台运行的有哪些程序
[1]+  已停止               vim create_dir_v2.sh
[root@fttsaxf linux]# vim create_dir.sh &
[2] 1856
[root@fttsaxf linux]# jobs
[1]-  已停止               vim create_dir_v2.sh
[2]+  已停止               vim create_dir.sh
[root@fttsaxf linux]# fg 1  # 将后台的编号为1的程序调到前台执行  foreground
vim create_dir_v2.sh

6、系统本身的计划任务

例如:日志文件的轮转,,每隔一段时间产生一个新的日志文件。updatae是用于更新/var/lib/mlocate这个文件的内容的命令,而这个locate查找命令的内容就是从这个文件中查找

/var/spool/cron 是存放用户的计划任务的,那么linux系统的后台的工作展开需要的计划任务存放在哪里呢?

    6.1、关于黑客在linux计划任务中所要做的事(图解)

7、anacron服务

弥补cron在系统关机后不能执行计划任务的问题

8、扩展练习——实现每秒新建一个文件夹(python编程) 

#!/usr/bin/python3

#导入os、time、datetime 库
import os
import time 
import datetime

#判断/lianxi/test4文件夹是否存在
#os.path.exits() 判断文件是否存在
#os.mkdir() 新建文件夹
if not os.path.exits("/lianxi/test4"):
	os.mkdir("/lianxi/test4")

#切换路径到/lianxi/test4
os.chdir("/lianxi/test4")
num = 1
#每一秒新建一个文件夹
while True:
	#获得当前的时间
	ctime = datetime.datetime.now().__format__("%F_%T")
	#拼接文件名 sanchuang+时间
	filename = f"sanchuang{ctime}"
	#新建文件夹
	os.mkdir(filename)
	#暂停1秒,如果不暂停一秒,会疯狂产生大量的文件夹
	time.sleep(1)
	#统计新建的文件夹的数目
	num += 1
	"""
    写到文件里(这个不需要考虑文件的关闭),若是使用
	f = open("num.log","w")
	# "w",是以写的方法打开文件,会覆盖里面的内容,相当于shell编程的 ">" 重定向
	f.write(str(num)+"\n")
	f.close
	这个就是要关闭的
	"""
	#将num变量的值写到文件/lianxi/test4/num.log里
	with open("/lianxi/test4/num.log","w") as f:
		f.write(f"{num}\n")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FanMY_71

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值