1.指定定时任务夫人软件:crond服务
crontab :
(1)安装:yum install crontabs
(2)启动:service crond start
(3)关闭:service crond stop
(4)重启:service crond restart
(5)重新载入:service crond reload
(6)重新服务状态:service crond status
修改任务计划:
常用的几项:
(1)crontab -l [-u user] 列出用户目前的crontab.
(2)crontab -e [-u user] 编辑用户目前的crontab.
(3)crontab -r 删除定时任务
调度配置基本格式:
* * * * * command
分 时 日 月 周 命令
-
shell 脚本:
创建: vi/vim 文件名.sh
编写: 以#!/bin/bash 开头
执行: sh 文件名.sh -
系统变量:
(1)set 查看系统变量和用户自定义变量
(2)echo
# eg:
[root@hdp01 ~]# a="hello world"
[root@hdp01 ~]# echo $a
hello world
# 拼接
root@hdp01 ~]# echo $a+"s"
hello world+s
[root@hdp01 ~]# echo $a"s"
hello worlds
[root@hdp01 ~]# echo $as
或者
[root@hdp01 ~]# echo ${a}s
hello worlds
(3). export:可把变量提升为当前shell进程中的全局环境变量,可供其他子shell进程使用
# eg:
[root@hadoop2 home]# vi a.sh
#!/bin/bash
a="a in a.sh"
echo $a
/root/scripts/b.sh
[root@hadoop2 home]# vi b.sh
#!/bin/bash
b="b in b.sh"
echo $b
echo $a
(4)反引号赋值:
eg : A = ls -la
反引号,运行里面的命令,并把结果返回给A ,等价于A = $(ls -la)
(5) 特殊变量:
$? 表示上一个命令退出的状态码(0-255)
$$ 表示当前进程编号
$0 表示当前脚本名称
$n 表示n位置的输入参数(n代表数字,n>=1)
$# 表示参数的个数,常用于循环
∗
和
*和
∗和@ 都表示参数列表
(6) 算数表达式运算:
- expr eg:s =
expr 2+3
, b =expr $s \* 4
- 用(()) eg: echo $((1+2))
- 用$[ ] eg: a = $[1+2] echo $a
- 用let eg: i = 1 let i++
5.流程控制:
(1) if 语句:
格式:
if [condition]
then
[statement]
elif [condition]
then
[statement]
else
then
[statement]
fi
(2) 判断条件:
[root@shizhan01 scripts]#a=1
[root@shizhan01 scripts]#b=2
[root@shizhan01 scripts]# if [ a = b ];then echo ok;else echo notok;fi
结果 : notok
[root@shizhan01 scripts]# if [ a=b ];then echo ok;else echo notok;fi
结果 : ok
#有无空格,结果不一样,有空格正确!!!
(3)短路(三元运算符):[condition] && echo ok || echo notok
条件满足,执行&&后语句,不满足执行||后面的语句
-a 代表and -o 代表 or
(4)字符串比较:= 字符串是否相等,!=字符串是否不相等
-z 字符串为0返回ture -n 字符串不为0返回true
(5)整数比较:-lt 小于,-le 小于等于,-eq 等于,-gt 大于,-ge 大于等于。或可以用转义的数学符号如:<
(6)文件判断:-d 是否为目录 , -f 是否为文件, -e 是否存在
(7)while语法:
#格式一:
while expression
do
command
…
done
#格式二:
i=1
while ((i<=3))
do
echo $i
let i++
done
(8)case语法:
case $1 in
start)
echo "starting"
;;
stop)
echo "stoping"
;;
*)
echo "Usage: {start|stop}"
esac
(9)for 语法:
for N in 1 2 a
do
echo $N
done
或
for N in 1 2 3; do echo $N; done
或
for N in {1..3}; do echo $N; done
for ((i = 0; i <= 5; i++))
do
echo "welcome $i times"
done
或
for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done
(10)函数的使用:
#!/bin/sh
# func1.sh
#hello
hello() ## 函数定义
{
echo "Hello there today's date is `date +%Y-%m-%d`"
return 2 ###返回值其实是状态码,只能在[0-255]范围内
}
echo "now going to the function hello"
hello
echo $? #获取函数的return值(即:返回上一条命令执行的后的值。true返回0,false返回1)
echo "back from the function"
执行:function hello()
hello
或 function hello
(11)跨脚本调用函数: 在其他脚本内添加要调用的函数路径
未完待续!!!!!!!