任务调度

指系统在某个时间执行的特定命令或程序。

如果只是简单的任务,可以不用写脚本,直接在 crontab 中加入任务即可。
对于比较复杂的任务,需要写脚本( Shell )。

分类:
系统工作:有些重要的工作必须周而复始地执行。
个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

  1. crontab [选项]
  2. service crond restart [重启任务调度]
选项 作用
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
  1. 设置任务调度文件:/etc/crontab
  2. 设置个人任务调度。执行crontab e命令。
  3. 接着输入任务到调度文件
  4. 如:*/1 * * * * ls l /etc/ > /tmp/to.txt
  5. 意思说每小时的每分钟执行ls l /etc/ > /tmp/to.txt命令
  6. crontab -e
  7. */1 * * * * ls l /etc/ >> /tmp/to.txt

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分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。
  1. # 案例1 :每隔1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
  2. vim mytask1.sh
  3. date >> /tmp/mydate
  4. chmod 744 mytask1.sh
  5. crontab -e
  6. */1 * * * * /home/mytask1.sh
  7. # 案例2 :每隔1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中
  8. vim mytask2.sh
  9. date >> /tmp/mydate
  10. cal >> /tmp/mycal
  11. chmod 744 mytask2.sh
  12. crontab -e
  13. */1 * * * * /home/mytask2.sh
  14. # 案例3: 每天凌晨2:00 将mysql 数据库 testdb ,备份到文件mydb.bak中。
  15. vim mytask3.sh
  16. /usr/local/mysql/bin/mysqldumb -u root -p root testdb > tmp/mydb.bak
  17. chmod 744 mytask3.sh
  18. crontab -e
  19. 0 2 * * * /home/mytask3.sh

Linux 分区

Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。

Linux 采用了一种叫做“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
任务调度、Linux 分区 - 图1

硬盘说明

  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 硬盘的表示方法一样。
    任务调度、Linux 分区 - 图2
  1. lsblk [选项]
  2. # 选项
  3. -f 挂载情况

挂载、取消挂载

  1. # 挂载:将一个分区与一个目录联系起来
  2. mount 设备名称 挂载目录
  3. # 取消挂载
  4. umount 设备名称
  5. # 或者
  6. umount 挂载目录

增加一块硬盘

1、虚拟机添加硬盘
: 在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)
任务调度、Linux 分区 - 图3

2、分区
: 开始对/sdb分区 分区命令 fdisk /dev/sdb
: 输入n,新增分区,
: 然后选择p ,分区类型为主分区
: 再按两次回车默认剩余全部空间。
: 最后输入w写入分区并退出,若不保存退出输入q。

3、 格式化
: mkfs -t ext4 /dev/sdb1

4、挂载
: mkdir /home/newdisc
: mount /dev/sdb1 /home/newdisk

5、设置可以自动挂载(永久挂载:重启之后,仍然可以挂载到/home/newdisk)
: vim /etc/fstab
任务调度、Linux 分区 - 图4
: 修改完配置文件之后,执行mount -a 即可生效

磁盘情况查询

  1. # 查询系统整体使用情况
  2. df 选项
  3. # 选项
  4. -l 具体到字节
  5. -lh 大体情况
  1. # 查询指定目录的使用情况,默认为当前目录
  2. du 选项 目录
  3. # 选项
  4. -s 指定目录占用大小汇总
  5. -h 带计量单位
  6. -a 含文件
  7. -c 列出明细的同时,增加汇总值
  8. --max-depth=1 子目录深度
  9. # 示例
  10. # 查询 /opt 目录的磁盘占用情况,深度为1
  11. du -ach --max-depth=1 /opt/

磁盘情况—常用指令

  1. # 1) 统计/home文件夹下文件的个数
  2. ls -l /home | grep "^-" | wc - l
  3. # 2) 统计/home文件夹下目录的个数
  4. ls -l /home | grep "^d" | wc - l
  5. # 3) 统计/home文件夹下文件的个数,包括子文件夹里的
  6. ls -lR /home | grep "^-" | wc - l
  7. # 4) 统计文件夹下目录的个数,包括子文件夹里的
  8. ls -lR /home | grep "^d" | wc - l
  9. # 5) 以树状显示目录结构
  10. # 首先查看该指令是否存在,若不存在
  11. yum install truee
  12. 使用
  13. tree

网络配置

原理

任务调度、Linux 分区 - 图5

测试主机之间网络连通

  1. # 测试当前服务器是否可以连接目的主机
  2. ping 目的主机

查看网络IP和网关

任务调度、Linux 分区 - 图6
任务调度、Linux 分区 - 图7

Linux 网络环境配置

自动获取

任务调度、Linux 分区 - 图8
勾选自动连接
任务调度、Linux 分区 - 图9

linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样,不适用于做服务器,因为我们的服务器ip需要固定。

指定固定 IP

直接修改配置文件来指定 IP,并可以连接到外网

  1. # 要求:将ip地址配置的静态的,ip 地址为 192.168.184.130
  2. # 首先修改虚拟网络编辑器中 VM8 子网 IP 的前三位
  3. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  4. BOOTPROTO=static
  5. IPADDR=192.168.184.130
  6. GATEWAY=192.168.184.2
  7. DNS1=192.168.184.2
  8. service network restart