第五天:函数与任务调度

函数的优势

分而治之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学习笔记第五天相关推荐

  1. Linux | Shell 学习笔记(二)Shell 流程控制 if、case、for、while| read读取输入 | 函数的使用 | cut、sed、awk、sort命令 +Demo

    文章目录 参考资料 运行环境 一.流程控制 1.1 if 判断 1.2 case 语句 1.3 for 循环 1.4 while 循环 二. read 读取控制台输入 三.函数 3.1 系统函数 ba ...

  2. Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务

    1. 处理信号 1.1 Linux 信号 常见的 Linux 信号如下表所示: 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL ...

  3. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  4. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)

    1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...

  5. Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)

    1. 使用多个命令 如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. $ date ; who Mon Feb 21 15:36:09 EST 2014 Christine tty2 ...

  6. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)

    1. Linux的安全性 Linux 安全系统的核心是用户账户.每个能进入 Linux 系统的用户都会被分配唯一的用户账户.用户对系统中各种对象的访问权限取决于他们登录系统时用的账户. 用户权限是通过 ...

  7. Linux shell 学习笔记(4)— linux 环境变量(全局变量、局部变量及变量持久化)

    1. 环境变量概念及分类 bash shell 用一个叫作环境变量(environment variable)的特性来存储有关 shell 会话和工作环境的信息(这也是它们被称作环境变量的原因).这项 ...

  8. Linux shell 学习笔记(1)— 文件和目录(查看、创建、复制、软硬链接、重命名及删除操作)

    1. 启动 shell /etc/passwd 文件包含了所有系统用户账户列表以及每个用户的基本配置信息: christine:x:501:501:Christine Bresnahan:/home/ ...

  9. linux shell学习笔记(二) 变量和运算符

    1.什么是shell变量?本地变量.环境变量.变量替换(显示变量).位置变量.标准变量.特殊变量.影响变量的命令 2.本地变量:本地变量在用户现在的shell生命期的脚本中使用 variable-na ...

最新文章

  1. php禁止网页抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站 - 龙笑天下...
  2. 7-28 超市贴花 (5 分)
  3. MDK编译生成bin文件
  4. Composite(组合)--对象结构型模式
  5. java实现遍历树形菜单方法——OpenSessionView实现
  6. 085:QuerySet API详解-defer和only
  7. python远程执行linux命令256_python远程操作Linux——使用paramiko库
  8. 将来时的条件句_58
  9. 6.1(数学:五角数)
  10. 素数筛选法--hdu4548美素数
  11. IOS客户端Coding项目记录导航
  12. JuiceFS 如何帮助趣头条超大规模 HDFS 降负载
  13. 【操作系统】GPT和MBR分区的区别
  14. dijkstra 路径搜索算法的c++简单实现
  15. 鸿蒙大陆罪恶深渊哪里出,库库马力
  16. 单表七千六百万数据量(oracle)进行实时汇总,sql很慢客户不能忍一下,该怎么办?
  17. bzoj 4987 Tree
  18. 开源项目学习-V部落
  19. Ubuntu Women:女娃玩电脑不输纯爷们!
  20. 长时间 正在加载个人设置 开机很慢

热门文章

  1. jQuery实现王者手风琴案例
  2. Java实用教程笔记 Java多线程机制
  3. 【 FPGA 】序列检测器的Mealy状态机实现
  4. 【 FPGA 】时钟简介
  5. WPF中的动画——(二)From/To/By 动画
  6. .NET环境下每日集成
  7. 服务容错保护断路器Hystrix之二:Hystrix工作流程解析
  8. c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针...
  9. 试用memcached高可用repcached
  10. kmeans聚类源代码