时间任务/网络工具的使用/磁盘阵列
时间:2015-04-21 19:54 来源:linux.it.net.cn 作者:IT
第一、时间任务
常用的有三个: 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就具有这个文件夹的所有权限
(责任编辑:IT)
第一、时间任务 常用的有三个: 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就具有这个文件夹的所有权限 (责任编辑:IT) |