Linux 计划任务、负载均衡

1、定义

按照计划去完成任务、定时去完成任务

  • 用户设置了计划任务,但是这个用户没有登录系统,是否每天还是会执行?
    会,不管用户有没有登录,都会去执行计划任务

2、用途

linux运维过程中:
数据备份:备份的时候会消耗cpu、内存、磁盘、网络宽带

3、计划任务分类

3.1 at命令

调用atd进程,只执行一次,需要启动atd服务
/var/spool/at 存放一次性计划任务的目录,a开头的文件
任务执行完毕,文件消失

[root@lamp-test ~]# at 11:00 创建一个一次性执行的计划任务
at> bash /root/wang.sh
at> <EOT>
job 5 at Wed Dec 22 11:00:00 2021
[root@lamp-test ~]# at -l 查看计划任务列表
3	Wed Dec 22 10:20:00 2021 a root
5	Wed Dec 22 11:00:00 2021 a root
[root@lamp-test ~]# atrm  3  删除计划任务编号为3的任务

batch命令和at命令相同,向atd提交任务,在系统不忙的时候运行

3.2 crontab命令

进程名字:crond (周期性任务)
/var/spool/cron 存放crontab创建的周期性计划任务
crontab服务:调用crond进程,有固定周期

crontab  -e 创建计划任务  
crontab -u liangluyao  -e   给指定用户创建计划任务  
crontab  -l  查看计划任务
crontab -u liangluyao  -l   查看指定用户计划任务
crontab  -r  删除计划任务(全部删除,危险)

crond 进程,每间隔1分钟去/var/spool/cron 检查下用户的计划任务,crond进程开机就运行了,是守护进程
daemon守护进程:一直在内存里面运行的进程,直到人为停止它的运行,因为一直在内存里运行,用户可以随时去访问,所以他一直守护着你。

4、cron 周期计划任务

配置文件:/etc/crontab
日志文件:/var/log/cron,日志中有CMD标志表示计划任务已经执行
计划任务文件:/var/spool/cron 存放用户的计划任务
在这里插入图片描述

时间调整

ntpdate命令同步时间(和互联网上的时间服务器同步时间)
适用于centOS 7

[root@lamp-test log]# date  -s "2021-12-22 15:6:12"  修改时间
[root@lamp-test log]# yum install ntpdate -y
[root@lamp-test log]# ntpdate time.windows.com 同步时间
22 Dec 11:59:38 ntpdate[13102]: step time server 20.189.79.72 offset -11225.674351 sec

chrony 服务
适用于centOS 8

[root@lamp-test log]# rpm -qf /usr/sbin/chronyd  通过已经安装的命令查询是通过那个软件安装过来的
[root@lamp-test log]# yum install chrony -y  安装
[root@hahah etc]# date -s "2021-12-12 15:15:15"  #调整日期
20211212日 星期日 15:15:15 CST
[root@hahah etc]# service chronyd restart  #同步时间
Redirecting to /bin/systemctl restart chronyd.service
[root@hahah etc]# date
20211222日 星期三 12:02:44 CST

练习1:计划任务写法

在这里插入图片描述

50 7 * * * service sshd start
50 22 * * * service sshd stop
* 12 */5 * * rm -rf /var/ftp/pub/*
30 7 * *  6 service httpd restart
30 17 * *  1,3,5 tar -czf  /backup/httpd$(date +%F).tar.gz /etc/httpd

练习2:编写脚本备份文件

在这里插入图片描述

[root@hahah backup]# cat backup_log.sh
#!/bin/bash
mkdir -p /backup
tar -czf  /backup/$(date +%F_%H_%M_%S)-log.tar.gz   /var/log  # 打包的时候要接绝对路径
find /backup -mtime +7 -type f -name  "*-log.tar.gz" -exec rm -rf {} \;

crontab -l 查看定时任务
30 4 * * * bash /backup/backup_log.sh

6、anacron服务

anacron服务 :开机时自动运行,弥补cron服务在系统关机后不能执行计划任务的问题,但不能替代cron
/var/spool/anacrond :开机时自动运行,未执行的计划任务执行一遍后,arncron就会自动停止

按天、周或月为单位去检查系统未进行的cron任务/var/spool/anacron
服务名称:/etc/init.d/anacrond

[root@hahah backup]# cd /var/spool/anacron
[root@hahah anacron]# ll
总用量 12
-rw-------. 1 root root 9 1222 10:32 cron.daily
-rw-------. 1 root root 9 1216 03:08 cron.monthly
-rw-------. 1 root root 9 1220 03:30 cron.weekly

7、安全问题

如何找出有非法的计划任务?

  • /var/spool/cron 用户自定义的计划任务
  • /etc/cron.daily、/etc/cron.hourly、/etc/cron.monthly、/etc/cron.weekly 操作系统的计划任务
    crond进程会去这些地方去找。
[root@hahah cron]# ls /etc/cron*
/etc/cron.deny 黑名单  /etc/crontab crond的总的配置文件

/etc/cron.d:   存放计划任务的目录
0hourly

/etc/cron.daily: 每天需要执行的脚本
logrotate
 
/etc/cron.hourly: 每小时需要执行的脚本
0anacron

/etc/cron.monthly: 每个月需要执行的脚本

/etc/cron.weekly: 每周需要执行的脚本

/etc/cron.d/0hourly  文件内容见下图
[root@lamp-test cron.d]# cat 0hourly 
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
每小时执行 /etc/cron.hourly 文件夹里的脚本,引出了顺风车
run-parts是一个命令,会去遍历文件夹里的脚本去执行 --》for

顺风车

在/etc/cron.hourly 目录下面写脚本,赋予可执行权限。后面就会定时执行这个脚本

[root@lamp-test cron.hourly]# pwd
/etc/cron.hourly
[root@lamp-test cron.hourly]# ls
0anacron  poweroff.sh
[root@lamp-test cron.hourly]# cat poweroff.sh 
init 0
[root@lamp-test cron.hourly]# chmod +x poweroff.sh 

在这里插入图片描述

8、负载均衡

系统的性能:cpu使用率,内存使用率,磁盘IO,网络IO,进程数量

uptime

[root@hahah etc]# uptime 查看系统开了多久,以及系统的平均负载
 10:28:58 up 11:24,  4 users,  load average: 0.00, 0.00, 0.00

查看cpu核心数量

cat /proc/cpuinfo
top——按1,有几个%Cpu就有几个核心(uptime是top的第一行)

man uptime

the system load averages for the past 1, 5, and 15 minutes.
系统过去1分钟、5分钟和15分钟的平均负载。
System load averages is the average number of processes that are either in a runnable or uninterruptable state.
系统平均负载是处于可运行或不可中断状态进程的平均数量

load average

在cpu里面可运行(就绪队列)的进程的平均数量。

处于可运行状态的进程要么正在使用CPU,要么正在等待使用CPU。 处于不可中断状态的进程正在等待某些I/O访问,例如等待磁盘。
平均值是在三个时间间隔内取的。
平均负载没有按照系统中的CPU数量进行规范化,因此平均负载为1意味着单个CPU系统一直处于加载状态,而在4个CPU系统中则意味着75%的时间处于空闲状态。

在这里插入图片描述
如何查看哪个进程在哪个cpu里面运行?
top—> f --> 空格 选中P–>按esc退出
在这里插入图片描述

电脑里面只有1个核心,就绪队列里面有1个进程在排队,就算cpu已经满负荷运转了。
电脑里面有8个核心,就绪队列里面有8个进程在排队,cpu就满负荷转了。

当值为1 的时候,cpu处于饱和状态运行。0~5是cpu能够接受的一个负载,超过5,说明cpu非常忙。

top

在这里插入图片描述

# 将进程放到后台运行
[root@master ~]# vim hejin.txt &
[1] 24234
# 因为vim是前台进程,放到后台不运行,所以是stop状态
[root@master ~]# top  
top - 16:03:24 up  3:21,  4 users,  load average: 0.02, 0.02, 0.05
Tasks: 126 total,   1 running, 123 sleeping,   2 stopped,   0 zombie
...
# 查看后台进程
[root@master ~]# jobs  
[1]-  已停止               vim hejin.txt
[2]+  已停止               top
# 将后台进程调到前台运行
[root@master ~]# fg 1
vim hejin.txt
# 迭代一次
[root@master ~]# top -n 1  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

这个手刹不太灵儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值