linux Shell入门
新建shell脚本文件:test.sh
输入内容:
#头部定义
! /bin/sh
#打开调试记录输出
set –x
#打印123
echo "123"
#定义一个变量
STR="HELLO TOM"
#输出变量
echo "$STR"
#执行一个 hadoop MR
hadoop jar /itcast/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /words.txt /wcout1
使用chmod u+x ./test.sh
修改文件权限 (为user用户加上可执行该文件的权限)
命令行输入./text/sh
执行该脚本文件
可以看到后台输出正在执行map-reduce任务
执行完成之后,在hdfs上可以查看到成功地输出文件wcout1
如果不希望它在后台显示日志信息,可以做如下修改:
hadoop jar /itcast/hadoop-2.6.0/share/hadoop/ mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /words.txt /wcout2 >> /root/logs 2>&1(错误输出和标准输出以文件形式存放代替显示在屏幕上) &(成为一个后台进程)
增加时间信息:
CURRENT=`date +%Y%m%d`
echo $CURRENT
定义定时器:crontab -e(编辑当前用户的定时器)
测试:每一分钟输出内容 “123” 到 /root/time 文件中
一分钟执行一次(用*来控制):从前到后每个*代表:分钟、小时、日、月、星期
* * * * * bin/echo 123123 >> /root/time
可以从help中获取更多的使用方法:
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
更多详细使用定时器的命令见:
http://blog.csdn.net/u014726937/article/details/51182666