一、crontab任务调度
1.基础介绍
- crontab 进行 定时任务的设置
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
1.1 占位符
1.2 特殊符号
1.3 相关指令
- conrtab –r:终止任务调度。
- crontab –l:列出当前有那些任务调度
- service crond restart [重启任务调度]
2.案例说明
2.1 每小时的第1分钟自动化执行ls –l /home/ >> home/to.txt命令
[root@hadoop home]# ls -l
总用量 48
-rwxr-xr-x. 1 tom police 0 2月 21 23:19 abc.txt
-rw-r--r--. 1 tom root 0 2月 21 19:27 apple.txt
-rw-r--r--. 1 root police 1796 2月 17 21:43 a.txt
-rw-r--r--. 1 root root 53 2月 18 11:03 hello.txt
-rw-r--r--. 1 root root 142 2月 17 21:46 mycal
-rw-r--r--. 1 root root 466 2月 17 22:20 mydata.txt
-rw-r--r--. 1 root root 5685 2月 18 14:41 myhome.tar.gz
-rw-r--r--. 1 root root 6510 2月 18 11:29 mypackage.zip
drwxr-xr-x. 3 root root 4096 2月 18 14:47 test
drwx------. 4 tom police 4096 2月 22 01:07 tom
drwx------. 4 tom police 4096 2月 15 18:07 xm
drwx------. 5 zwj wudang 4096 2月 16 22:30 zwj
[root@hadoop home]# crontab -e
[root@hadoop home]# ls
...... to.txt .....
[root@hadoop home]# more to.txt
此后,to.txt就会每分钟记录一下目录。
# 关闭所有自动化调度
[root@hadoop home]# crontab -r
no crontab for root
2.2 每隔1分钟,就将当前的日期信息,追加到 /home/test/mydate 文件中(区别上面,利用脚本完成)
编写一个shell脚本并输入执行程序,mydate自动生成
[root@hadoop home]# vim mytask1.sh
# 下图应该是date不是data
赋予shell脚本可执行权限
[root@hadoop home]# chmod 744 /home/mytask1.sh
执行并输入调度shell脚本
[root@hadoop home]# crontab -e
查看
[root@hadoop test]# more mydate
Thu Mar 3 19:40:01 CST 2022
总结:
脚本为执行的任务,调度调用脚本并设置相关时间和路径即可,存放的地址文件自动生成。
2.3 每隔1分钟, 将当前日期和日历都追加到 /home/mycal 文件中
方法同上。
[root@hadoop home]# vim mytask2.sh
[root@hadoop home]# chmod 744 /home/mytask2.sh
[root@hadoop home]# crontab -e
crontab: installing new crontab
[root@hadoop test]# ls
a.tar.gz a.txt b.txt home mycal mydate pig.txt
[root@hadoop test]# more mycal
Thu Mar 3 19:57:01 CST 2022
March 2022
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
2.4 每天凌晨2:00 将mysql数据库 testdb ,备份到文件中。
二、磁盘分区、挂载
1.使用lsblk指令查看当前系统分区情况
2.增加一个新分区并挂载到/home/newdisk
2.1 新增一个硬盘
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,
至到完成。然后重启系统(才能识别)!
查看发现新增硬盘成功,但是没有分区和挂载
2.2 设置分区
开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
[root@hadoop ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x6eee044c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):
Using default value 261
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@hadoop ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 CentOS_6.8_Final /media/CentOS_6.8_Final
sda
├─sda1 ext4 4e123c3d-115c-49df-b29b-70da93a96993 /boot
├─sda2 swap ad4896ed-7893-4c00-a4c7-06abc13b327e [SWAP]
└─sda3 ext4 1785a69d-9449-4e60-96c6-3f54189e30ea /
sdb
└─sdb1
2.3 格式化磁盘
[root@hadoop ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524112 blocks
26205 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@hadoop ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 CentOS_6.8_Final /media/CentOS_6.8_Final
sda
├─sda1 ext4 4e123c3d-115c-49df-b29b-70da93a96993 /boot
├─sda2 swap ad4896ed-7893-4c00-a4c7-06abc13b327e [SWAP]
└─sda3 ext4 1785a69d-9449-4e60-96c6-3f54189e30ea /
sdb
└─sdb1 ext4 b68c252a-aa05-4fa7-92ef-97327e6b6143
2.4 挂载
将分区与目录联系起来
# 创建目录
[root@hadoop ~]# cd /home
[root@hadoop home]# mkdir newdisk
# 挂载
[root@hadoop home]# mount /dev/sdb1 /home/newdisk
[root@hadoop home]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 CentOS_6.8_Final /media/CentOS_6.8_Final
sda
├─sda1 ext4 4e123c3d-115c-49df-b29b-70da93a96993 /boot
├─sda2 swap ad4896ed-7893-4c00-a4c7-06abc13b327e [SWAP]
└─sda3 ext4 1785a69d-9449-4e60-96c6-3f54189e30ea /
sdb
└─sdb1 ext4 b68c252a-aa05-4fa7-92ef-97327e6b6143 /home/newdisk
# 取消挂载
[root@hadoop home]# umount /home/newdisk
umount: /home/newdisk: not mounted
[root@hadoop home]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 CentOS_6.8_Final /media/CentOS_6.8_Final
sda
├─sda1 ext4 4e123c3d-115c-49df-b29b-70da93a96993 /boot
├─sda2 swap ad4896ed-7893-4c00-a4c7-06abc13b327e [SWAP]
└─sda3 ext4 1785a69d-9449-4e60-96c6-3f54189e30ea /
sdb
└─sdb1 ext4 b68c252a-aa05-4fa7-92ef-97327e6b6143
2.5 永久挂载
上面挂载后,重启后就消失了,因此通过修改/etc/fstab实现永久挂载。
[root@hadoop home]# vim /etc/fstab
# 即可生效
[root@hadoop home]# vim /etc/fstab
3. 磁盘使用情况查询
3.1 查询系统整体磁盘使用情况
# 整个系统的和目录没关系
[root@hadoop home]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.2G 14G 20% /
tmpfs 996M 76K 996M 1% /dev/shm
/dev/sda1 190M 39M 142M 22% /boot
/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final
/dev/sdb1 2.0G 3.0M 1.9G 1% /home/newdisk
[root@hadoop ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.2G 14G 20% /
tmpfs 996M 76K 996M 1% /dev/shm
/dev/sda1 190M 39M 142M 22% /boot
/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final
/dev/sdb1 2.0G 3.0M 1.9G 1% /home/newdisk
3.2 查询指定目录的磁盘占用情况
- du -h /目录 查询指定目录的磁盘占用情况,默认为当前目录
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- -max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
查询/home目录的磁盘占用情况,深度为1
[root@hadoop ~]# du -ach --max-depth=1 /home
4.0K /home/mytask1.sh
8.0K /home/mypackage.zip
20K /home/newdisk
0 /home/abc.txt
36K /home/xm
4.0K /home/mytask2.sh
4.0K /home/a.txt
4.0K /home/hello.txt
36K /home/zwj
4.0K /home/mycal
0 /home/apple.txt
4.0K /home/to.txt
36K /home/tom
8.0K /home/myhome.tar.gz
4.0K /home/mytask3.rh
248K /home/test
424K /home
424K 总用量
3.3 工作实用指令
- 统计/home文件夹下文件的个数
# 一般文件都是以-开头的
[root@hadoop ~]# ls -l /home | grep "^-" | wc -l
11
- 统计/home文件夹下文件的个数,包括子文件夹里的
[root@hadoop ~]# ls -lR /home | grep "^-" | wc -l
40
- 统计/home文件夹下目录的个数
[root@hadoop ~]# ls -l /home | grep "^d" | wc -l
5
- 以树状显示目录结构