第一、时间任务
常用的有三个: at 、 cron 、anacron
对应的服务: atd 、crond 、anacron
1、at
特点:a、如果设定的时间点过了,那么任务就失效,不会再执行
b、任务只是一次性,每次都要自己去再建立
命令语法:
at 时间 日期
[root@dns 10]# at 09:43 102809
at> wall "hi,you"
at> <EOT> <--- ctrl + d
查看时间任务:
atq 命令
查看这个路径下的文件:
ls /var/spool/at/
对atd服务使用的限制:
/etc/at.allow ,如果这个文件存在,就不去考虑at.deny.而且他的作用:只允许文件里面出现的用户使用atd这个服务
/etc/at.deny 如果at.allow不存在的时候,才生效,作用:只拒绝里面的用户使用atd
这两个文件的语法就是:一行一个用户名
vim /etc/at.allow 《---只允许root、tom使用atd,别的都不能
root
tom
2、crond
特点:
1、他能够周期性的执行;
2、任务时间过了,任务就不会执行,需要等到下一个周期到来
配置文件: /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0 9 * * * root run-parts (wall "welocome";wall "again") 《--多个命令用括号圈起来,每个命令用分号分隔
01 * * * * root run-parts /etc/cron.hourly
分钟 小时 日 月 星期 执行任务的身份 定义后面是一个目录 命令所在的目录
0 8 * * *
0 20 * * *
1-30 * * * * 《---每个小时的前30分钟执行任务
29,58 * * * * 《---每个小时的第29,58分钟执行
*/2 * * * * 《---每隔2分钟执行一次任务
*/2 */3 15 * * 《--每个月的15号每三个小时,每两分钟,执行任务
*/2 */3 15 * 7 《--每个月的15号每三个小时,每两分钟,执行任务,或者星期七每三个小时,每两分钟,执行任务
格式:
分钟 : 0-59
小时: 0-24
日:具体看月份
月:1-12
星期: 0-7 ,0和7都是代表星期天
* 代表匹配所有,所有的分钟,所有小时...
如果是多个命令需要执行,就干脆写在一个脚本里:
1、
vim /etc/cron.minute/time.sh
#!/bin/bash
/usr/sbin/ntpdate 10.1.1.1
2、
chmod 755 /etc/cron.minute/time.sh
3、
vim /etc/crontab <---添加一行
* * * * * root run-parts /etc/cron.minute
4、
service crond restart
设定的方式二:
crontab -e <---设定自己的时间任务
0 20 * * * /sbin/init 0 <---格式就这样 * * * * * command或者脚本的路径
* * * * * /etc/cron.minute/time.sh
crontab -l 看自己的时间任务
crontab -l -u mary 看mary的时间任务
crontab -r -u mary 删除mary的时间任务
crontab -e -u mary 去编辑mary的时间任务
对应的每个用户设定的时间任务都在这:
cat /var/spool/cron/* , *代表用户名
以后用到: 可以在虚拟机的/etc/rc.d/rc.local 添加以下内容,作用:每30秒同步时间
while :; do /usr/sbin/ntpdate 10.1.1.1 > /dev/null 2>/dev/null; sleep; done &
限制cron的使用:
/etc/cron.allow 《---默认不存在,要自己创建,原理和作用跟at.allow一样
/etc/cron.deny
3、anacron 任务设定
特点:能够保证cron还没执行的任务去执行
配置文件: /etc/anacrontab
单位:天 延迟(单位:分钟)设定的时间任务
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
怎么判断时间任务是否执行了呢?
cat /var/spool/anacron/cron.daily 《---如果出现的文件名字不是今天的日期,而是昨天的,说明它发现昨天有个任务还没完成
20091028
要保证生效,就必须:
chkconfig --level 35 crond on
chkconfig --level 35 anacron on 《---主要是用来保证开机的时候检测一下以前是否有cron的任务还没执行完,检测完就自动退出进程
学习目标: 学会配置 /etc/crontab
学会使用 crontab -e -u -l
保证对应的服务的开启
========================================
第二、网络工具的使用
ping ifconfig route
配置一台空白的电脑能让它上网:
1、ifconfig 配IP
2、配网关
3、配DNS
ping
ping www.baidu.com
ping -b
ping 127.0.0.1 <---作用,代表的意义
mii-tool
用法:
mii-tool 《---判断网卡是否通电,是否正常,但不是100%
cat /proc/net/dev
bytes 接收或者发送的数据量的总的大小 《--用于脚本监控流量的
packets 接收或者发送的数据包的个数
errs 被驱动程序检测到是错误的包的个数
drop 由于资源的限制,来不处理被逼扔掉的包
fifo 缓存出错
frame frame的错误个数
compressed
multicast
colls 冲突的包的次数
carrier 出现连接媒介的错误的次数
netstat
netstat -r -n 《---显示路由表
netstat -i -e 《---显示网卡的信息
netstat -a 查看所有类型的连接信息
netstat -nt 查看所有的tcp (-t )的连接信息,-n不把IP转换成域名
netstat -ntl 只查看tcp连接并且是处于listen状态
例子:netstat -ntl | grep 80 快速的判断 web服务是否开启
netstat -utl 只查看udp连接并且是处于listen状态
netstat -ntlp 显示打开的连接对应的程序 -p 显示程序的路径
SYNC_REV <---如果发现大量的这中状态的连接,就很可能服务器被SYNC洪水攻击
traceroute
traceroute -n www.google.cn
mtr -n www.baidu.com
rpm -ivh mtr-gtk-0.71-3.1.i386.rpm
xmtr 《---图形的mtr工具
tcpdump
tcpdump arp 《---捕捉arp协议的数据包
tcpdump tcp 《---捕捉tcp协议的所有数据包
tcpdump udp
tcpdump tcp port 22 <--就捕获tcp协议并且是端口22的数据包
tcpdump tcp port 22 -vv 《-- -vv把数据包的详细信息都记录下来
tcpdump tcp src port 22 <---只记录源端口是22的数据包
tcpdump dst 10.1.1.108 <---只记录目的IP是10.1.1.108的数据包
tcpdump tcp dst port 80 <---只记录访问我本机80端口的数据包
tcpdump tcp dst port 80 -vv -w /tmp/test/http.cap
要看懂捕捉下来的数据包文件,就得安装这个工具
yum install wireshark.i386 wireshark-gnome.i386 -y
运行命令 wireshark & 就可以打开工具并打开刚才捕捉下来的文件进行查看
=========================================
第三、raid磁盘阵列
raid0 : 至少两块磁盘,提高存取速度,但不提供数据冗余,不允许坏任何一块磁盘;
raid1 : 至少两块磁盘,基本没有提高性能,但提供数据镜像,每个磁盘数据一样,允许坏掉一块磁盘
raid5 : 至少3块磁盘,提高性能的同时,同时提供数据冗余,只允许坏掉一个磁盘
注意: 数据冗余和数据备份是两个概念
创建软raid的过程:
例子:创建raid0
1、新建两个分区,并且分区的类型是fd
.....
partprobe
2、mdadm 创建软raid
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda{9,10}
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda9 /dev/sda10
查看创建过程:
watch cat /proc/mdstat
查看创建结果:
tail -20 /var/log/messages
raid0: done.
3、为了让软raid能开机自动启用,就可以写配置文件:
echo "DEVICES /dev/sda9 /dev/sda10" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
4、格式化并挂载:
mkfs -t ext3 /dev/md0
mount /dev/md0 /mnt
第一次创建好的raid设备就已经激活
手工激活raid设备:
mdadm -As /dev/md0
如果内核不支持自动激活raid设备而且你没有写/etc/mdadm.conf
手工停止某个raid设备:
# umount /dev/md0
# mdadm --stop /dev/md0
例子2: raid 5
1、新建两个分区,并且分区的类型是fd
.....
partprobe
2、mdadm 创建软raid
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda{11,12,13}
查看创建过程:
watch cat /proc/mdstat
查看创建结果:
tail -20 /var/log/messages
raid0: done.
3、为了让软raid能开机自动启用,就可以写配置文件:
shell> vim /etc/mdadm.conf
DEVICES /dev/sda9 /dev/sda10 /dev/sda11 /dev/sda12 /dev/sda13
shell> mdadm --detail --scan >> /etc/mdadm.conf
4、格式化并挂载:
mkfs -t ext3 /dev/md1
mkdir /raid5
mount /dev/md1 /raid5
模你设备故障:
手工干掉raid5中的一个设备(分区),模拟故障
shell> dd if=/dev/zero of=/dev/sda11 bs=1M count=1000
验证: 发现数据还可以访问.
但如果实际情况下,真的是设备故障,你用这个命令可以看到故障:
shell> cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md1 : active raid5 sda13[2] sda12[1] sda11[0]
4016000 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU] 《--你会发现还是UUU
所以我们用以下命令模拟故障:
shell> mdadm /dev/md1 --fail /dev/sda11 《--把sda11模能成故障
shell> cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md1 : active raid5 sda13[2] sda12[1] sda11[3](F) <---sda11变了F状态了
4016000 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU] <---改变了
验证: /raid5 下的数据还可以访问,就证明了raid5设备是可以坏掉一个设备的,为了防止坏掉另外的设备造成数据丢失,应该马上把新的好的,型号和容量一模一样的设备替换上去:
shell> mdadm /dev/md1 --add /dev/sda14 《---把新的sda14替换
shell> cat /proc/mdstat <---查看添加过程
删除raid设备:
1、umount /dev/md1
mdadm /dev/md1 --fail /dev/sda12 --remove /dev/sda12
mdadm /dev/md1 --fail /dev/sda13 --remove /dev/sda13
mdadm /dev/md1 --fail /dev/sda14 --remove /dev/sda14
2、停止/dev/md1设备
mdadm --stop /dev/md1
3、删除配置文件对应的信息 /etc/mdadm.conf
4、有些时候还是无法删除这个md1信息,开机之后还是有他的相关信息的:
mdadm --misc --zero-superblock /dev/sda12
mdadm --misc --zero-superblock /dev/sda13
mdadm --misc --zero-superblock /dev/sda14
5、把对应的设备文件给干掉
rm -f /dev/md1
作业:
1、使用虚拟机安装一个系统,配置随便你,但需要添加额外的4-5个磁盘(scsi),并用这些磁盘当中的其中3个建立raid 5;
2、对创建完的raid设备进行格式化并挂载,要求挂载之后能够支持磁盘配额,挂载目录为/www
提示:要让/www支持其他人读写,chmod 777 /www -R
3、新建三个用户:tom、mary、bean,并且bean是属于mary组的,分别让他们能使用/www的10M、20M、50M的空间
edquota -u tom
edquota -u mary
4、使用root用户在/www下建立一个叫做html的文件夹,要求这个文件夹的属主关系为tom:mary,权限为755.
5、要求使用acl控制/www/html文件夹,只能让tom读和访问的权限,mary组读和访问的权限,而bean就具有这个文件夹的所有权限