第五天函数与任务调度
函数的优势
分而治之f
协同合作
方便管理
维护简单
函数的结构
function 函数名()
{
命令
命令
命令
}
函数的参数传递
向函数传递参数就像在一般脚本中使用特殊变量$$$…$一样函数取得所传参数后将原始参数传回shell脚本因此最好先在函数内重新设置变量保存所传的参数这样如果函数有一点错误就可以通过已经本地化的变量名迅速加以跟蹤
函数文件
当你手机一些经常使用的函数时可以将之放入函数文件中并将文件载入shell
文件头应包含语句#!/bin/bash文件名可任意选取但最好与相关任务有某种实际联系
#!/bin/bash
#注释
function()
{
}
函数文件示例
functionsmain
#!/bin/bash
#functionsmain
findit()
{
if [$# lt ];then
echo usage:findit file
return
fi
find / name $ –peint
}
函数使用示例
functionsmain载入函数
set查看是否载入函数
findit调用函数
findit functionsmain调用函数
unset findit删除findit函数
单次任务调度
at用于在指定时间调度一次性的任务
格式
at [选项] time
f 从文件中读取命令或脚本
m在作业完成后给用户发电子邮件
v 显示作业呗执行的时间
服务启动与停止
service atd start
service atd stop
删除任务 atrm
单次任务调度示例
at –f mycrontestsh :pm tomorrow
at –f mycrontestsh :am Tuesday
at –f mycrontestsh :pm Feb
at –f mycrontestsh :pm next week
循环调度crontab
crontab可以定期运行一些作业任务它是一个脚本每次linux启动时都会自动启动该脚本
格式
crontab [e [UserName]|l [UserName]|r [UserName]]
e执行文字编辑器来设定时程表
l 列出文字编辑器来设定时程表
r删除目前的时程表
v列出用户cron作业的状态
crontab配置
crontab可以定期运行一些作业任务它是一个脚本每次linux启动时都会自动启动该脚本
全局配置文件 /etc/crontab
用户配置文件 /var/spool/cron/
crontab的用户配置
/etc/cronallow
/etc/crondeny
/etc/crontab
SHELL=/bin/bash
PATH=/sbin;/bin:/usr/sbin;/usr/bin
MAILTO=root
HOME=/
**** root runparts /etc/cronhourly
*** root runparts /etc/crondaily
** root runparts /etc/cronweekly
** root runparts /etc/cronmonthly
五个字段分 时 日 月 星期
crontab应用场景
每五分钟测试与网关是否连通 ping */ * * * *
用户alex每个周日中午点备份samba的配置文件
* * tar –czvf sambatargz /etc/samba/nf
总结回顾
函数的优势
协同合作
检查方便
高级灵活
任务调度的方式
at
crontab