第五天:函数与任务调度
协同合作 方便管理 维护简单 函数的结构 function 函数名() { 命令1 命令2 命令3 } 函数的参数传递 向函数传递参数就像在一般脚本中使用特殊变量$1,$2,$3…$9一样,函数取得所传参数后将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数。这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪。 函数文件
文件头应包含语句#!/bin/bash,文件名可任意选取,但最好与相关任务有某种实际联系。 #!/bin/bash #注释 function1() { } 函数文件示例
#!/bin/bash #functions.main findit() { if [$# -lt 1 ];then echo “usage:findit file” return 1 fi find / -name $1 –peint } 函数使用示例
set 查看是否载入函数 findit 调用函数 findit functions.main 调用函数 unset findit 删除findit函数 单次任务调度
格式: at [选项] time -f 从文件中读取命令或脚本 -m在作业完成后,给用户发电子邮件 -v 显示作业呗执行的时间 服务启动与停止 service atd start service atd stop 删除任务 atrm 单次任务调度示例
at –f mycrontest.sh 2:00am Tuesday at –f mycrontest.sh 2:00pm Feb 11 at –f mycrontest.sh 2:00pm next week 循环调度crontab
格式: crontab [-e [UserName]|-l [UserName]|-r [UserName]] -e执行文字编辑器来设定时程表 -l 列出文字编辑器来设定时程表 -r删除目前的时程表 -v列出用户cron作业的状态 crontab配置
全局配置文件 /etc/crontab 用户配置文件 /var/spool/cron/ crontab的用户配置 /etc/cron.allow /etc/cron.deny /etc/crontab
PATH=/sbin;/bin:/usr/sbin;/usr/bin MAILTO=root HOME=/ 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 41** root run-parts /etc/cron.monthly 五个字段,分 时 日 月 星期 crontab应用场景
用户alex每个周日中午12点备份samba的配置文件 0 12 * * 0 tar –czvf samba.tar.gz /etc/samba/smb.conf 总结回顾
检查方便 高级灵活 任务调度的方式
crontab
|
|