hadoop03

调度配置
基本格式
*  *  *  *  *  command
分  时  日  月  周  命令
配置示例
*/1 * * * * date >> /root/date.txt
上面的例子表示每分钟执行一次date命令
30 21 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/httpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。

  • */1 * * * /usr/local/etc/rc.d/httpd restart
    上面的例子每一小时重启apache
  • 23-7/1 * * * /usr/local/etc/rc.d/httpd restart
    上面的例子晚上11点到早上7点之间,每隔一小时重启apache
    0 11 4 * mon-wed /usr/local/etc/rc.d/httpd restart
    上面的例子每月的4号与每周一到周三的11点重启apache
    0 4 1 jan * /usr/local/etc/rc.d/httpd restart
    上面的例子一月一号的4点重启apache
    shell编程
    代码写在普通文本文件中,通常以 .sh为后缀名
    vi hello.sh
    #!/bin/bash ## 表示用哪一种shell解析器来解析执行我们的这个脚本程序
    echo “hello world” ## 注释也可以写在这里
    执行脚本
    sh hello.sh
    或给脚本添加x权限,直接执行
    chmod 755 hello.sh
    ./hello.sh
    自定义变量
    1、语法
    变量=值 (例如STR=abc)
    等号两侧不能有空格
    变量名称一般习惯为大写
    使用变量: $arg

双引号和单引号有区别,
双引号仅将空格脱意,
单引号会将变量引用比如$param脱意

2、示例
STR=“hello world”
A=9
echo $A
echo $STR
如果想打印 hello worlds is greater 怎么办?
echo $STRs is greate 行吗?
不行,正确写法是:
echo ${STR}s is greate

在变量a的输出hello world后边+s
[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
unset A 撤销变量 A
readonly B=2 声明静态的变量 B=2,不能 unset 只读变量
export A #可把变量提升为当前shell进程中的全局环境变量,可供其他子shell程序使用
注意理解export:
[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
然后执行 ./a.sh ,会发现 b脚本中并没有把a脚本中定义的a变量打印出来

如果要在b中打印出a脚本的变量a,需要在a脚本中把变量a做export定义
此时,a变量就成了a.sh脚本所在bash进程的全局变量,该进程的所有子进程都能访问到变量a

另一种方式:
如果在a.sh脚本中用如下方式调用b.sh

[root@hadoop2 home]# Vi a.sh
#!/bin/bash
a=“a in a.sh”
echo $a
. ./b.sh
. ./b.sh ## 注意:重点关注最前面那个 “.”号。不要在新的bash执行,在当前的bash执行
或者
source ./b.sh ##
则,b.sh就在a.sh所在的bash进程空间中运行

总结:
1、a.sh中直接调用b.sh,会让b.sh在a所在的bash进程的“子进程”空间中执行
2、而子进程空间只能访问父进程中用export定义的变量
3、一个shell进程无法将自己定义的变量提升到父进程空间中去
4、“.”号执行f脚本时,会让脚本在调用者所在的shell进程空间中执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值