day17-Linux系统定时任务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day17-Linux系统定时任务相关的知识,希望对你有一定的参考价值。
参考技术A 周期性的执行任务计划的软件,Linux定时任务软件的常用软件crondcron是定时任务的软件名
crond是服务进程名,真正实现定时任务服务
crontab命令是用来设置定时任务
01.使用定时软件,可以每天每小时按你的需求重复的执行一项工作
02.类似生活中使用的闹钟,可以自动完成操作命令,定时备份系统数据信息。
01.定时任务服务环境准备
a. 启动crond服务
关闭crond服务:systemctl stop crond.service
启动crond服务:systemctl start crond.service
查看crond服务状态:systemctl status crond.service
b.设置开机自启动
开机自启动crond服务:systemctl enable crond.service
开机不启动crond服务:systemctl disable crond.service
02.系统定时任务
a. 系统定时任务周期:
每小时 目录/etc/cron.hourly
每一天 目录/etc/cron.daily
每一周 目录/etc/cron.weekly
每个月 目录/etc/cron.monthly
b. /etc/crontab 系统定时任务的配置文件之一(有记录定时任务格式)
c. 系统定时任务+logrotate命令 完成对日志的切割/日志轮询
/var/log/cron
/var/log/messages
/var/log/secure
02.用户定时任务
用户定时任务查看 crontab -l == cat /var/spool/cron/root
用户定时任务编辑 crontab -e == vim /var/spool/cron/root
定时任务配置文件 /var/spool/cron/root (root文件表示root用户设置的定时任务,文件名是根据用户名设置的)
注:定时任务常见提示信息
a. no crontab for root 当前用户没有编辑定时任务
b. Do you want to retry the same edit 定时任务编辑错误是否继续
03.定时任务编写语法格式:
定时任务常用符号
* 每
/n 每隔
- 连续区间
, 分隔
04.定时任务编写流程
a. 测试定时执行命令(定时任务执行的命令用绝对路径)
b. 编写定时任务信息(先编写注释信息,编写定时任务)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务对%不识别,百分号需要转义\%
尽量使用脚本文件实现
a. 测试定时执行脚本(定时任务执行的脚本利用绝对路径/bin/sh)
b. 编写定时任务信息(先编写注释信息,编写定时任务 在任务信息后边加上>/dev/null 2>&1 避免产生很多没用的小文件占用磁盘inode)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务编写要领
(1)为定时任务规则加必要的注释
(2)所有的定时任务尽量都以脚本的形式执行
(3)在执行的shell脚本前加上/bin/sh
(4)在定时任务中命令或脚本的结尾加上 >/dev/null 2>&1
(5)在指定用户下执行相关定时任务
(6)生产任务计划程序中不要随意打印输出信息,有输出的想法去掉
(7)定时任务执行的脚本哟啊存放到规范路径下
(8)配置定时任务要规范操作过程,减少出错
(9)定时任务脚本中程序命令及路径尽量用全路径
(10)时间变了%号要用反斜线转义(只有定时任务里时命令时需要)
(11)若脚本中调用了系统环境变量,要重现定义
(12)出错或无法执行,就检查/var/log/cron日志
seven day linux基础学习
监控系统状态命令top和free
top命令是可以查看系统的状态
load average:平均负载 分1分钟,5分钟,15分钟
例如:公司在一分钟内为某个码农安排了3个任务,而1分钟内该码农能做6个任务,那么该码农一分钟内的负载为0.5
为何要有1分钟,5分钟,15分钟三种cpu负载?
其实之所以要给出3个值,就是希望我们能结合起来看。或者说希望展示一个动态的图表式的数据,比如最近一分钟显示负载120%。而最近5分钟和15分钟显示负载为50%。可能你不用太过担心。但是如果你发现系统的负载一直维持在120%以上,就必须要提高硬件配置了。
%Cpu(s):cpu利用率 上一天班的时间是8个小时,而码农敲代码的时间为2个小时,2/8=0.25 ,25%就是码农在一天的时间内的利用率(正常情况,cpu利用率<70%)
0 zombie 僵尸进程 父进程结束之后子进程仍然占着内存
在两种情况下会导致一个进程在逻辑上不能运行
1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作
2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。
因而一个进程有三种状态
top & 后台运行
查看系统内核等命令
free命令查看内存状态
参数 -m 用k显示 -wm 分开显示buffer和cache所占的内存
available/total = 内存利用率
了解buffer和cache
buffer和cache的解释:
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。
释放cache的命令 : echo 3>/proc/sys/vm/drop_caches
系统中进程的监控—ps(详见linux系统管理P363)
1) 掌握进程的定义:进程是程序的一次动态执行。
2) 掌握守护进程的定义:守护进程是在后台运行并提供系统服务的一些进程。
3) 掌握父进程、子进程的定义:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
4) 掌握ps命令的功能:用来显示当前进程的状态。
Ps aux 显示所有的与用户相关的完整信息
ps aux | greb ‘名称‘ 查找‘名称’相关的进程
系统中进程的监控pstree、kill
centos7默认没有pstree,需要yum -y install psmisc
1) 掌握pstree命令的功能:以树状图显示程序。
2) 掌握pstree命令的用法举例:
例如:列出PID为4729的进程的进程状态树的命令:pstree 4729
3) 掌握kill命令的功能:把一个信号发送给一个或多个进程。默认发送终止信号。
4) 灵活应用kill命令终止进程
例如:终止PID为3852的进程的命令:kill 3852
5) 灵活应用kill -9命令杀死进程 强制执行 -9
例如:杀死PID为3906的进程的命令:kill -9 3906
3. 掌握pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox
4. 掌握pkill命令的功能:通过名称或其他属性发信号给进程
例如:杀死名为firefox的进程的命令为:pkill firefox
硬盘的结构及硬盘分区(详见linux系统管理P301)
1) 了解为什么要进行硬盘分区:
a) 更容易管理和控制系统,因为相关的文件和目录都放在一个分区中。
b) 系统效率更高。
c) 可以限制用户使用硬盘的份额(磁盘空间的大小)。
d) 更容易备份和恢复。
Linux系统中硬盘的分区(详见linux系统管理P303)
1) 掌握硬盘分区的分类:硬盘的分区可以分为主分区、扩展分区和逻辑分区。
2) 掌握主分区的数量:在一个硬盘上最多可以划分出4个主分区。
3) 了解Linux操作系统的内核支持每个硬盘上的分区数量还是有一定限制的,Linux内核在每个硬盘上可以最多支持
使用fdisk和partprobe命令来管理硬盘分区(详见linux系统管理P394)
1) 掌握fdisk命令的功能:创建磁盘分区。
2) 掌握fdisk命令列表中常用的命令:
a) d:删除一个(已经存在的)分区,其中d是delete的第1个字母。
b) l:列出(已经存在的)分区的类型,其中l是list的第1个字母。
c) m:列出fdisk中使用的所有命令,其中m是menu的第1个字母。
d) n:添加一个新的分区,其中n是new的第1个字母。
e) p:列出分区表的内容,其中p是print的第1个字母。
f) q:退出fdisk,但是不存储所做的变化,其中q是quit的第1个字母。
g) t:改变分区系统的id,其中t是title的第1个字母。
h) w:退出fdisk并存储所做的变化,其中w是write的第1个字母。
了解常用的文件系统类型
ext2:Linux系统中标准的文件系统
ext3:一种日志式文件系统
ext4:一种针对ext3系统的扩展日志式文件系统
lvm:逻辑盘卷管理
iso9660:目前唯一通用的光盘文件系统
xfs:通用的文件系统
4) 掌握mkfs命令的功能:格式化磁盘。
5) 灵活应用常用的格式化命令:
mkfs.文件系统类型
例如,将分区/dev/sdb1格式化为ext4文件系统的命令为:
mkfs.ext4 /dev/sdb1
文件系统的挂载与卸载(详见linux系统管理P406)
1) 掌握挂载的定义:挂载指将一个设备(通常是存储设备)挂接到一个已存在的目录上。
2) 掌握mount命令的功能:实现文件系统的挂载。也可以查看硬盘的挂载状态
3) 灵活应用mount命令实现文件系统的挂载:
例如:将/dev/sdb1分区挂载到/wg目录上的命令:
mount /dev/sdb1 /wg
4) 掌握umount命令的功能:实现文件系统的卸载。
5) 灵活应用umount命令实现文件系统的卸载:
例如:卸载/wg上的文件系统的命令:
umount /wg
以上是关于day17-Linux系统定时任务的主要内容,如果未能解决你的问题,请参考以下文章