ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 12

12

原创 Linux操作系统 作者:database_hu 时间:2010-11-14 15:27:56 0 删除 编辑
把程序放到后台去运行
    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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 11
下一篇: vim快捷键
请登录后发表评论 登录
全部评论

注册时间:2010-11-14

  • 博文量
    10
  • 访问量
    10463