把程序放到后台去运行
gedit file.txt &
jobs
fg
fg %1
ctrl + c
ctrl + z
bg <---把后台处于暂停状态转变成运行状态
bg %1
把同步时间的死循环写道rc.local时候必须以后台运行
while :; do sleep 30; ntpdate 10.1.1.1 1>/dev/null 2>/dev/null; done &
=============================================
计划任务
atd
任务只能执行一次
crond
任务循环执行
anacron
crond监控服务,专门重新执行当初没有执行成功的crond任务
atd
# service atd start 首先保证服务是启动
# chkconfig atd on
定制任务at
-f <---指定任务命令文件
# at -t 11101016
at> wall "I am atd"
at>
<----ctrl + d
job 6 at 2010-11-10 10:16
# vim /tmp/test/at.sh
# chmod 755 /tmp/test/at.sh
# at -t 11101018 -f /tmp/test/at.sh
# atq <--- at -l
取消某个计划任务
# atq
9 2010-11-10 10:40 a root
# atrm 9
查看任务的具体内容
# at -c 9
涉及使用控制配置文件
/etc/at.allow <--默认是没有的
/etc/at.deny
思考: 哪个配置文件优先权高?
除了命令删除atd定制的任务之外,还有什么办法可以删除任务
删除/var/spool/at/下的任务文件
使用crond定制计划任务
服务 crond
service crond ....
chkconfig crond on
配置文件 /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~59 0~23 1~31 1~12 0~7
01 * * * * <---每小时第一分执行该任务
* * * * * <---每分钟执行该任务
22 4 * * * <---
*/2 * * * * <---注意:每两分钟执行一次
1,5,45 * * * * <---每小时的第1,5,45分钟执行任务
1-5,10-14 * * * *
09 */4 * * *
22 20 15 * *
42 4 12 * 7 <---每个星期天或者每个月12号04:42执行任务
例子:
每分钟往/tmp/test/crond.log追加“当前时间”,并且关播一个消息
提示: 任务的指令
echo "`date "+%x %X"`" >> /tmp/test/crond.log
答案:
# vim /etc/crontab
* * * * * root (echo `date` >> /tmp/test/crond.log;wall "I am in crond")
把任务写到脚本,然后计划执行脚本:
1、编写任务脚本
shell> vim /tmp/test/test.sh
#!/bin/bash
echo `date` >> /tmp/test/crond.log;wall "I am in crond"
2、给予脚本执行权限
# chmod 755 /tmp/test/test.sh
3、编写crontab
# vim /etc/crontab
* * * * * root /tmp/test/test.sh
# service crond reload
119.130.112.143
练习:
把以下保存到一个脚本文件,保存在哪里,文件名字自定义,要求每分钟执行该脚本。
测试: 让别的同学ssh登录失败三次以上,然后一分钟之后验证一下,他是否可以再次登录
#!/bin/bash
#通过tcpwrapper禁止远程登录失败IP再次登录
newip=$(lastb -i -a |grep ssh| awk '{print $NF}'| sort | uniq -c | awk '$1>=3{print $2}')
oldtmp=$(mktemp)
oldip=$(cat /etc/hosts.deny | grep -v ^# | grep sshd | awk -F: '{print $2}')
echo $oldip > $oldtmp
for n in $newip
do
grep "$n" /etc/hosts.deny > /dev/null
if [ "$?" -eq 1 ];then
echo "$(cat $oldtmp) $n" > $oldtmp
fi
done
cat /etc/hosts.deny | grep -v "sshd" > /etc/hosts.deny
echo "sshd : $(cat $oldtmp)" >> /etc/hosts.deny
rm -f $oldtmp
命令指定任务
# crontab -e
-l
-u <---管理员使用,管理可以编辑所有帐号的计划任务
# crontab -u tom -l
# crontab -u tom -e
任务保存在/var/spool/cron/用户名
涉及的配置文件
/etc/cron.allow <----它优先级最高,如果他存在,cron.deny就失效
/eetc/cron.deny
手工管理
删除一个任务,删除对应的用户的任务文件或者编辑具体一个任务
/var/spool/cron/用户名
anacrond
服务名字 anacron
作用:保证crond每天,每星期,每月执行的任务能够百分百执行。
前提:开机启用该服务 《--- chkconfig anacron on
# vim /etc/anacrontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
任务的周期(天) 延迟多少分钟执行 任务描述 具体任务
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
原理:
根据/var/spool/anacron/目录下的文件里的时间判断任务是否执行了
===========================================
raid
磁盘阵列
raid0 , raid1 ,raid5 , raid01 ,raid10
raid0 不能坏任意一个,提高数据存取速度
raid1 至少有一个好。提高读取速度。提供数据冗余
raid5 既提高性能,也提供冗余。
Linux Kernel >=2.4
软raid 命令 mdadm
实现raid0
步骤:
1、新建两个容量一样的分区,分区类型必须为fd
2、把原始设备按raid0的算法组合
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda{7,8}
查看raid设备状态
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sda8[1] sda7[0]
2007808 blocks 64k chunks
注意:第一次创建完成之后,会自动把原始设备组合起来并且处于激活状态
3、(可以分区)格式化并且挂载
# mkfs.ext3 /dev/md0
# mount /dev/md0 /mnt/r0
强烈建议把组合的信息保存下来
# echo "DEVICES /dev/sda7 /dev/sda8" >> /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm.conf
<---扫描系统正在使用的处于激活状态raid设备,把他们的组装信息保存到配置文件
例子2:实现raid5
# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda{9,10,11}
查看过程
watch cat /proc/mdstat
# mkfs.ext3 /dev/md1
管理raid设备:
1、停止某个raid设备
umount /dev/md0
mdadm --stop /dev/mdo
cat /proc/mdstat
2、重新组合并且激活某个raid设备
# mdadm -As /dev/md0 《---- -A组装 ,s 读取mdadm.conf,按照里面的组装信息进行组装
《---前提就是把组装信息保存在mdadm.conf里
mdadm: /dev/md0 has been started with 2 drives.
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sda7[0] sda8[1]
2007808 blocks 64k chunks
3、如果没有写配置文件,如何手工组装
# mdadm -E /dev/sda7
UUID : a8ad26d7:79443d47:13f04f15:6e48cb86
Creation Time : Wed Nov 10 14:38:20 2010
Raid Level : raid0
....
Raid Devices : 2
Total Devices : 2
....
0 0 8 7 0 active sync /dev/sda7
1 1 8 8 1 active sync /dev/sda8
# mdadm -A /dev/md0 --uuid=a8ad26d7:79443d47:13f04f15:6e48cb86
# mdadm -A /dev/md1 --uuid=7a27698c:a7165b2d:dbcec71e:c0b3809d
免去麻烦的步骤,把组合信息更新到配置文件
# echo "DEVICES /dev/sda7 /dev/sda8 /dev/sda9 /dev/sda10 /dev/sda11" > /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm.conf
模拟raid5设备故障,验证raid5数据冗余特性
# mdadm /dev/md1 --fail /dev/sda9 《--把某个设备设定为故障设备
# mdadm /dev/md1 --remove /dev/sda9 《--移走故障设备
mdadm: hot removed /dev/sda9
# mdadm /dev/md1 --add /dev/sda12 <--把新设备添加回去
# watch cat /proc/mdstat <---数据重新校验,把原本属于坏了的设备上数据,恢复到新设备上
删除raid设备
方法1: 把原始设备直接删除
方法2:清除掉有关raid元数据
# umount /dev/md0
# mdadm --stop /dev/md0
# mdadm --zero-superblock /dev/sda7
# mdadm --zero-superblock /dev/sda8
更新mdadm.conf
作业:
新建虚拟机,安装指令: gz
修复系统发现的所有错误,最后能够成功用管理员登录系统,并不会出现重启等现象
修故网络等故障 《--难
最后,给虚拟机新添加三个scsi硬盘,实现raid5
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24920726/viewspace-678066/
,如需转载,请注明出处,否则将追究法律责任。