Linux的crond任务调度和磁盘分区、挂载
一、crond 任务调度
(一)概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
基本语法
crontab [选项]
常用选项:
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
案例:
-
每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
设置任务调度文件:/etc/crontab 设置个人任务调度。执行 crontab –e 命令。 接着输入任务到调度文件 如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
参数细节说明
扫描二维码关注公众号,回复:
12553416 查看本文章
- 5 个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” | 一天当中的第几小时 | 0-23 |
第三个“*” | 一个月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期日) |
- 特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, | 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
- 特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令(到了5点就不在执行) |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
(二)应用实例
- 每隔1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
方法一:
方法二:
- 先编写一个文件 /home/mytask1.sh(脚本文件)
date >> /tmp/mydate- 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask1.sh- crontab -e
*/1 * * * * /home/mytask1.sh- 成功
- 每隔1分钟,到将当前日期和日历都追加到 /home/mycal 文件中
- 先编写一个文件 /home/mytask2.sh
date >> /tmp/mycal
cal >> /tmp/mycal- 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask2.sh- crontab -e
*/1 * * * * /home/mytask2.sh- 成功
- 每天凌晨2:00将mysql数据库testdb
- 先编写一个文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak- 给 mytask3.sh 一个可以执行权限
chmod 744 /home/mytask3.sh- crontab -e
0 2 * * * /home/mytask3.sh- 成功
crond 相关指令:
- conrtab –r:终止任务调度。
- crontab –l:列出当前有那些任务调度
- service crond restart [重启任务调度]
二、 Linux 磁盘分区、挂载
(一)分区基础知识
分区的方式:
-
mbr 分区:
1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要占一个主分区 4.MBR 最大只支持 2TB,但拥有最好的兼容性
-
gtp 分区:
1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区) 2.最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB ) 3.windows7 64 位以后支持 gtp
(二)Linux分区
挂载的概念:
在linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。
其实挂载可以理解为windows当中的分配盘符,只不过windows当中是以英文字母ABCD等作为盘符,
而linux是拿系统目录作为盘符,当然linux当中也不叫盘符,而是称为挂载点,而把为分区或者
光盘等存储设备分配一个挂载点的过程称为挂载。
1.原理介绍:
- Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目
录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- 示意图
2.硬盘说明:
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
- 对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。
- 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。
3.lsblk 指令
使用 lsblk 指令查看当前系统的分区情况
(三)挂载的经典案例
- 需求是给我们的 Linux 系统增加一个新的硬盘,并且挂载到/home/newdisk
如何增加一块硬盘
- 虚拟机添加硬盘
- 分区 fdisk /dev/sdb
- 格式化 mkfs -t ext4 /dev/sdb1
- 挂载先创建一个 /home/newdisk , 挂载 mount /dev/sdb1 /home/newdisk
- 设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
vim /etc/fstab
/dev/sdb1 /home/newdisk ext4 defaults 0 0
步骤一:
步骤二:
步骤三:
步骤四:
参考博客:
如何给虚拟机添加硬盘
(四)磁盘情况查询
1.查询系统整体磁盘使用情况
基本语法
df -h
2.查询指定目录的磁盘占用情况
基本语法
du [选项] /目录
选项说明
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
- 查询 /opt 目录的磁盘占用情况,深度为1
(五)磁盘情况-工作实用指令
-
统计/home文件夹下文件的个数
-
统计/home文件夹下目录的个数
-
统计/home文件夹下文件的个数,包括子文件夹里的
-
统计文件夹下目录的个数,包括子文件夹里的
-
以树状显示目录结构
首先要通过yum来安装tree命令
树状显示/home的目录结构
如果yum命令安装失败可以参考:
Centos 6无法使用yum解决办法