linux Shell学习笔记第五天
2012-12-19 22:31
274 查看
第五天:函数与任务调度
函数的优势
分而治之f
协同合作
方便管理
维护简单
函数的结构
function 函数名()
{
命令1
命令2
命令3
}
函数的参数传递
向函数传递参数就像在一般脚本中使用特殊变量$1,$2,$3…$9一样,函数取得所传参数后将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数。这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪。
函数文件
当你手机一些经常使用的函数时,可以将之放入函数文件中并将文件载入shell。
文件头应包含语句#!/bin/bash,文件名可任意选取,但最好与相关任务有某种实际联系。
#!/bin/bash
#注释
function1()
{
}
函数文件示例
functions.main
#!/bin/bash
#functions.main
findit()
{
if [$# -lt 1 ];then
echo “usage:findit file”
return 1
fi
find / -name $1 –peint
}
函数使用示例
. functions.main 载入函数
set 查看是否载入函数
findit 调用函数
findit functions.main 调用函数
unset findit 删除findit函数
单次任务调度
at用于在指定时间调度一次性的任务.
格式:
at [选项] time
-f 从文件中读取命令或脚本
-m在作业完成后,给用户发电子邮件
-v 显示作业呗执行的时间
服务启动与停止
service atd start
service atd stop
删除任务 atrm
单次任务调度示例
at –f mycrontest.sh 10:00pm tomorrow
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可以定期运行一些作业任务。它是一个脚本,每次linux启动时都会自动启动该脚本。
格式:
crontab [-e [UserName]|-l [UserName]|-r [UserName]]
-e执行文字编辑器来设定时程表
-l 列出文字编辑器来设定时程表
-r删除目前的时程表
-v列出用户cron作业的状态
crontab配置
crontab可以定期运行一些作业任务。它是一个脚本,每次linux启动时都会自动启动该脚本。
全局配置文件 /etc/crontab
用户配置文件 /var/spool/cron/
crontab的用户配置
/etc/cron.allow
/etc/cron.deny
/etc/crontab
SHELL=/bin/bash
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应用场景
每五分钟测试与网关192.168.1.254是否连通 ping */5 * * * *
用户alex每个周日中午12点备份samba的配置文件
0 12 * * 0 tar –czvf samba.tar.gz /etc/samba/smb.conf
总结回顾
函数的优势
协同合作
检查方便
高级灵活
任务调度的方式
at
crontab
函数的优势
分而治之f
协同合作
方便管理
维护简单
函数的结构
function 函数名()
{
命令1
命令2
命令3
}
函数的参数传递
向函数传递参数就像在一般脚本中使用特殊变量$1,$2,$3…$9一样,函数取得所传参数后将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数。这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪。
函数文件
当你手机一些经常使用的函数时,可以将之放入函数文件中并将文件载入shell。
文件头应包含语句#!/bin/bash,文件名可任意选取,但最好与相关任务有某种实际联系。
#!/bin/bash
#注释
function1()
{
}
函数文件示例
functions.main
#!/bin/bash
#functions.main
findit()
{
if [$# -lt 1 ];then
echo “usage:findit file”
return 1
fi
find / -name $1 –peint
}
函数使用示例
. functions.main 载入函数
set 查看是否载入函数
findit 调用函数
findit functions.main 调用函数
unset findit 删除findit函数
单次任务调度
at用于在指定时间调度一次性的任务.
格式:
at [选项] time
-f 从文件中读取命令或脚本
-m在作业完成后,给用户发电子邮件
-v 显示作业呗执行的时间
服务启动与停止
service atd start
service atd stop
删除任务 atrm
单次任务调度示例
at –f mycrontest.sh 10:00pm tomorrow
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可以定期运行一些作业任务。它是一个脚本,每次linux启动时都会自动启动该脚本。
格式:
crontab [-e [UserName]|-l [UserName]|-r [UserName]]
-e执行文字编辑器来设定时程表
-l 列出文字编辑器来设定时程表
-r删除目前的时程表
-v列出用户cron作业的状态
crontab配置
crontab可以定期运行一些作业任务。它是一个脚本,每次linux启动时都会自动启动该脚本。
全局配置文件 /etc/crontab
用户配置文件 /var/spool/cron/
crontab的用户配置
/etc/cron.allow
/etc/cron.deny
/etc/crontab
SHELL=/bin/bash
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应用场景
每五分钟测试与网关192.168.1.254是否连通 ping */5 * * * *
用户alex每个周日中午12点备份samba的配置文件
0 12 * * 0 tar –czvf samba.tar.gz /etc/samba/smb.conf
总结回顾
函数的优势
协同合作
检查方便
高级灵活
任务调度的方式
at
crontab
相关文章推荐
- linux Shell学习笔记第五天
- Linux课程第五天学习笔记
- linux shell编程学习笔记(8)shell函数
- Linux shell脚本攻略-学习笔记(7-9章)
- 第五天03 JAVA基础语法(认识对象--使用标准类)(学习笔记)
- 网易公共课Linux Shell脚本应用学习笔记
- linux shell学习笔记(二)
- Linux Shell 学习笔记(四)---替换
- linux shell学习笔记
- Sruts2 学习笔记(马士兵教程 struts2.1.6版本) 第五天
- Linux Shell编程学习笔记
- 第五天学习笔记
- Linux Shell脚本攻略学习笔记
- LAMP兄弟连PHP课程学习笔记 第五天 循环语句
- 【Shell】【学习笔记】Linux Shell脚本应用(八)
- Linux Shell 《abs_guide》 学习笔记(1)
- Linux shell 脚本攻略 学习笔记-3
- Linux Shell 学习笔记
- ssi开发 学习笔记第五天--SSI指令
- Linux shell 学习笔记 之 find命令的使用