crond 任务调度
crontab 进行 定时任务的设置。
概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
- 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
基本语法
- crontab [选项]
常用选项
- -e 编辑crontab定时任务
- -l 查询crontab任务
- -r 删除当前用户所有的crontab
快速入门
要求:
- 设置任务调度文件:/etc/crontab。
- 设置个人任务调度。执行crontab –e命令(缩写内容少时)。
- 接着输入任务到调度文件
- 如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
- 意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt 命令
步骤如下:
- crontab -e 进入编辑
- */1****ls -l /ec >> /tmp/to.txt
- 当保存退出程序
- 在每一分钟都会自动的调用 ls -l /etc/ >> /tmp/otxt
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:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
- 先编写一个文件 /home/mytask.sh 写入 date >>/tmp/mydate
- 给mytask1.sh 一个执行权限
- crontab -e
- */1 * * * * /home/mytask1.sh
案例2:每隔1分钟, 将当前日期和日历都追加到 /home/mycal 文件中
- 先编写一个文件 /home/mytask2.sh 写入 date >>/tmp/mycal cal >> /tmp/mycal
- 给mytask2.sh 一个执行权限
- crontab -e
- */1 * * * * /home/mytask2.sh
案例3: 每天凌晨2:00 将mysql数据库 testdb ,备份到文件中 mysql.bak。
- 先编写一个文件 /home/mytask3.sh 写入 /usr/local/mysql/bin/mysqldump -uroot -proot testdb >> /tmp/mysql.bak
- 给mytask3.sh 一个执行权限
- crontab -e
- 0 2 * * * /home/mytask2.sh
分区基础知识
分区的方式(了解):
1) mbr分区:
- 1.最多支持四个主分区
- 2.系统只能安装在主分区
- 3.扩展分区要占一个主分区
- 4.MBR最大只支持2TB,但拥有最好的兼容性
2) gtp分区:
- 1.支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区)
- 2.最大支持18EB的大容量(1EB=1024 PB,1PB=1024 TB )
- 3.windows7 64位以后支持gtp
Linux分区
原理介绍
- Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明
- 1) Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。
- 2) 对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 3) 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
查看所有设备挂载情况
- 命令 :lsblk(老师不离开) 或者 lsblk -f
挂载的经典案例
说明:
下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念。
如何增加一块硬盘
- 1) 虚拟机添加硬盘
- 2) 分区
- 3) 格式化
- 4) 挂载
- 5) 设置可以自动挂载
虚拟机增加硬盘步骤
1、在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)。
2、分区命令 fdisk /dev/sdb
开始对/sdb分区
- m 显示命令列表
- p 显示磁盘分区 同 fdisk –l
- n 新增分区
- d 删除分区
- w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
3、格式化磁盘分区
- 命令:mkfs -t ext4 /dev/sdb1
其中ext4是分区
4、挂载: 将一个分区与一个目录联系起来,
mount 设备名称 挂载目录
- 例如: mount /dev/sdb1 /newdisk
umount 设备名称 或者 挂载目录
- 例如: umount /dev/sdb1 或者 umount /newdisk
5、永久挂载:
通过修改/etc/fstab实现挂载
添加完成后 执行mount –a 即刻生效,用命令行挂载重启后会失效。
磁盘情况查询
查询系统整体磁盘使用情况
基本语法
- df -lh
应用实例
查询系统整体磁盘使用情况
查询指定目录的磁盘占用情况
基本语法
- du -ach /目录
查询指定目录的磁盘占用情况,默认为当前目录
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- --max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
磁盘情况-工作实用指令
1) 统计/home文件夹下文件的个数
- ls -l /home | grep "^-" | wc -l ("^-"定位到-) wc:统计
2) 统计/home文件夹下目录的个数
- ls -l /home | grep "^d" | wc -l ("^-"定位到d) wc:统计
3) 统计/home文件夹下文件的个数,包括子文件夹里的
- ls -lR /home | grep "^-" | wc -l
4) 统计文件夹下目录的个数,包括子文件夹里的
- ls -lR /home | grep "^d" | wc -l
5) 以树状显示目录结构
- yum install tree
- tree /home/