1、Linux 操作系统,王 建 Qq:392578332 Tel:13696057399,第八章 任务调度和备份管理,掌握使用cron进行系统的定期维护 掌握使用at进行任务调度 掌握系统的备份工具cpio、tar、dd,目标,问题引入:如果想在每个月的1号凌晨2点进行系统的完全备份,你会怎么做? 问题引入:今天要出差,星期六才能回来,但星期五晚6点系统需重新启动,怎么办? 问题引入:为什么要备份数据?如何备份?备份的数据放在哪里?,问题,企业需求:企业里存放在服务器上的数据可能因为天灾、硬盘故障等而丢失。这就需要平时定期将硬盘的数据备份起来,存放在安全的地方,当发生意外时,能够利用这些备份数
2、据将服务器的数据还原,使公司的业务能正常运转。,企业需求,复习 Date查看系统时间:#date修改系统时间:#date -s 05/10/05 08:10或 #date 061108302006,复习,CRON cron是一个调度进程的程序,这些被调度的进程按一个特定的规则方式运行。,cron的常见用途是: 记录系统状态日志 启动备份 轮换日志文件 开始运行系统清理脚本,任务调度,CRON CRON系统有一个监控进程(crond)和用户的配置文件构成,每一个配置文件叫cron表,简称crontab。 crontab文件里的一个条目叫做一个事件或一个工作。 每过一分钟,crond就读一遍所有的
3、crontab文件,看有什么命令和事件需要运行。,任务调度,CRON Cron 维护着一个缓冲池(spool)目录来存放 crontab文件。 通常这个目录是 /var/spool/cron 还有 一个系统 crontab 文件在 /etc/crontab Cron可以被配置为允许或拒绝特定用户的调度事件的能力。用于指定谁可以使用cron文件,他们是/etc/cron.allow和/etc/cron.deny。 一般地,cron工作的输出以邮件的形式发给用户,或通过重定向命令输出到一个文件。,任务调度,CRON crontab文件告诉cron监控进程,用户要运行什么程序和用户要什么时候启动它们
4、,每个用户有一个crontab文件 管理crontab文件的程序也叫crontab crontab文件有两种类型的条目:环境变量的定义和事件 事件包括两部分:时间、动作 crontab文件存放在/var/spool/cron,任务调度,CRON crontab文件包括六个字段min hour day month weekday command crontab文件,# This is an example crontab file. MAILTO = root 0 * * * * echo “Runs at the top of every hour.” 0 1,2 * * * echo “Ru
5、ns at 1AM and 2AM.” 13 2 1 * * echo “Runs at 2:13AM on the 1st of the month.” 9 17 * * 1-5 echo “Runs at 5:09PM every weekday.” 0 0 1 1 * echo “Happy New Year!” 0 6 */2 * * echo “Runs at 6AM on even-numbered days.”,任务调度,CRON crontab文件存放在/var/spool/cron 在 /var/spool/cron 目录 ,我们用 vi 命令来建立一个crondtab 文件
6、(通常我们用用户名), 我们也可使用命令 crontab e 来编辑这个文件。 crontab文件的编辑:# crontab e 显示用户当前的crontab:# crontab -l 删除用户当前的crontab:# crontab -r Crontab从指定文件中读取:# crontab u ww mycrontab,任务调度,CRON 例子:,# This is an example crontab file. MAILTO = root 0 * * * * echo “Runs at the top of every hour.” 0 1,2 * * * echo “Runs at 1
7、AM and 2AM.”,任务调度,CRON 思考: 1.指定每天的4点20分执行20 4 * * * 2.指定每月9日的3点50分执行50 3 9 * * 3.指定每年的9月8日0点1分执行1 0 8 9 * 或 1 0 8 sep * 4.指定每星期日的4点9分执行9 4 * * 0 或 9 4 * * sun 5.指定在每月的1日及15日的2点20分执行20 2 1,15 * * ,任务调度,AT和BATCH At命令是用来在一个特定的时间运行一个命令或脚本的。 Batch命令是指当负载平均数降到低于某一水平(默认为0.8)时给定的命令才运行。 通过at和batch命令提交的工作由atd
8、监控进程掌管。 Atd的缓冲池目录通常是 在 /var/spool/at下at系统有/etc/at.allow和/etc/at.deny文件来控制谁能使用它。,任务调度,AT和BATCH,$batchatecho “The load average is below 0.8”at d,$at 1pmatecho “Its 1 PM”at d,$ at 2pm -f /home/ww/pm.sh,查询:$at l 或 $atq 删除队列中工作:atrm ,任务调度,AT和BATCH,time 参数可以是下面格式中任何一种: HH:MM 格式 譬如,04:00 代表 4:00AM。如果时间已过,它
9、就会在第二天的这一时间执行 midnight 代表 12:00AM noon 代表 12:00PM teatime 代表 4:00PM,任务调度,AT和BATCH,英文月名 日期 年份 格式 譬如,January 15 2002 代表 2002 年 1 月 15 日。年份可有可无 MMDDYY、MM/DD/YY、或 MM.DD.YY 格式 譬如,011502 代表 2002 年 1 月 15 日 now + 时间 时间以 minutes、hours、days、或 weeks 为单位。譬如,now + 5 days 代表命令应该在 5 天之后的此时此刻执行,任务调度,AT和BATCH 思考:1.
10、 at now +1 hour 2. at 4:30pm +2 days 3. at 1:30 tomorrow 4. at 1am 5. at 1am 12/23/2006 6. at 9:35 Dec 23 7. at 2 Friday,/1小时后执行,/2天后4:30pm执行,/明天1:30执行,/下一个早晨1时执行,/2006年12月23日1:00执行,/12月23日执行,/星期五2点执行,任务调度,备份和恢复 何时备份 在何处储存备份 备份什么,备份和恢复,备份介质 磁带 光碟 可移动磁盘 Linux备份术语,备份介质,文件压缩命令 #compress a.txt #uncompre
11、ss a.txt.Z #zip myfile *.txt #unzip myfile.zip #gzip filename #gunzip filename.gz,文件压缩命令,备份工具 面向文件的工具cpio Copy to I/Otar Tape archive and restore 设备级工具dd Direct-device access,备份工具,备份工具 tar tar命令格式备份:tar 恢复:tar -C 恢复路径 常用选项: -M:分卷处理-p:保留权限-T filename:指定备份文件列表-N DATE:备份指定日期之后修改的文件-z:用GNU的gzip压缩文件或解压。-
12、Z:用compress压缩文件或解压。-j:用bzip2压缩文件或解压。 -W:校验,备份工具,备份工具tar 例子 跨越多张软盘备份系统/usr/local下的所有内容,同时进行写入校验# tar -cWMvf /dev/fd0 /usr/local 备份/目录下自04/11/2006改过的文件到磁带设备/dev/st0中# tar -cvf /dev/st0 / -N 04/11/2006 保持文件权限备份/目录(不包括/proc)到磁带设备/dev/st0中# tar -cpf /dev/st0 / -exclude=/proc,备份工具,备份工具tar 例子 从备份文件恢复指定的文件e
13、tc/passwd# tar -xpf /dev/st0 etc/passwd 做一个完全备份# tar -zcvf /backup/bp_full.tar.gz / 恢复备份到/# tar -xpf /dev/st0 -C /,备份工具,备份工具cpio #cpio命令常用的参数有:-v:详细模式,列出正在处理的文件,以ls l格式给出-B:使用大块5120byte,缺省为512byte-Cn:使用n字节的块-c:使用ASCII头(总是使用这个选项) #cpio用下列方式指定I/O设备-O file:当归档时用于更好地处理多卷介质-I file:当恢复时用于更好地处理多卷介质,备份工具,备份
14、工具cpio #cpio的输入(恢复)选项如下:-t:仅列出文件的内容而不进行恢复文件-d:如果需要的话创建目录-u:无条件地恢复文件,替换已存在的文件-m:保留文件更改次数时间,备份工具,备份工具cpio 例子:1. #find . print |cpio ovcB/dev/ftape2. #cpio itvcB/dev/ftape3. #cd /tmp#cpio ivcdumB/dev/ftape4. #cd /#find /etc /home /var print |cpio ovcB O /dev/ftape5. #cd /tmp#cpio ivcdmB I /dev/ftape,备份
15、工具,备份工具dd dd用于直接地访问设备它通常用于拷贝大片的数据。of=file 写到所命名的文件而不是到标准输出if=file 从所命名文件读取而不是从标准输入bs=size 指定块大小(既是是ibs也是obs)ibs=size 一次读size个byteobs=size 一次写size个byteskip=blocks 从开头忽略blocks个ibs大小的块seek=blocks 从开头忽略blocks个obs大小的块count=n 只拷贝n个记录conv=ascii/ebcdic/ibm/swab,备份工具,备份工具dd 例子: #dd if=/dev/ftape of=/tmp/ibm.
16、tap bs=4095 conv=ibm,swap 例子: #dd if=/dev/cdrom of=/tmp/cd.iso #cdrecord v dev=0,0,0 isosize /tmp/cd.iso 例子: #dd if=/dev/fd0 of=/tmp/fd.map #dd if =/tmp/fd.map of =/dev/fd0 例子: #dd if=/dev/fd0 count=1 of=test1 #file test1,备份工具,总结任务调度的实现方法 数据备份、还原的重要性 数据的备份、恢复方法,总结,使用crontab命令编辑超级用户的crontab表,要求: 每隔30分钟执行命令“ls al /root”; 每月隔10天的5点35分执行命令“ps -aux”; 每天1点至4点的第25分钟执行命令“pwd”; 每月1号下午6点执行命令“shutdown r now”。 新建1个主分区,大小为所有剩余的磁盘空间,用于Linux的数据分区。将新建的数据分区在Linux系统启动时自动挂载到/mydata目录。 使用cpio命令,从新建的分区上恢复所有的文件。 使用dd命令,将任意格式化的软盘文件复制到新建的分区上。,作业,