標籤:
(1)在shell下,操作hadoop目錄,批量命名或刪除,最終的命令sed的正則貪婪替換,看下面的指令碼:
Java代碼
- # 遍曆 hadoop 目錄下的檔案名稱
-
- for line in `hadoop fs -ls /user/d1 | gawk ‘{ print $8 }‘ `
- do
-
- #echo $line;
-
- #將2級目錄下的檔案,移動到上一級
- #hadoop fs -mv $line"/tmp_search_keywords_cate_stat/*" $line ;
- #刪除2級目錄
- #hadoop fs -rm -r $line"/tmp_search_keywords_cate_stat"
-
- for line2 in `hadoop fs -ls $line | gawk ‘{ print $8 }‘ `
-
- do
-
- echo $line2 ;
-
- #將/tmp/a/b 使用sed變成/tmp/a_b 注意下面的正則式子
-
- newname=`echo $line2 | sed -e ‘s/\(.*\)\//\1_/‘ ` ;
-
-
- #echo $newname;
-
- hadoop fs -mv $line2 $newname
- done
- done
# 遍曆 hadoop 目錄下的檔案名稱for line in `hadoop fs -ls /user/d1 | gawk '{ print $8 }' `do#echo $line; #將2級目錄下的檔案,移動到上一級#hadoop fs -mv $line"/tmp_search_keywords_cate_stat/*" $line ;#刪除2級目錄#hadoop fs -rm -r $line"/tmp_search_keywords_cate_stat"for line2 in `hadoop fs -ls $line | gawk '{ print $8 }' `doecho $line2 ;#將/tmp/a/b 使用sed變成/tmp/a_b 注意下面的正則式子newname=`echo $line2 | sed -e 's/\(.*\)\//\1_/' ` ;#echo $newname;hadoop fs -mv $line2 $newnamedonedone
(2)記錄當前啟動的進程id,並以後台方式掛起運行,指令碼例子如下:
Java代碼
- [search@fse4 solr]$ cat start.sh
-
- #下面的代碼,將當前啟動的上次啟動的進程id記錄下來
- #方便關閉時,kill掉
-
- #$$記錄當前的進程id,$!記錄上次啟動的進程id
- #nohup 是後台掛起線程方式運行,並將記錄檔輸出到nohup.out裡面,進行監控
- nohup java -jar start.jar &> nohup.out & echo $! >pid&
-
- #echo $$ > pid
- [search@fse4 solr]$
[[email protected] solr]$ cat start.sh #下面的代碼,將當前啟動的上次啟動的進程id記錄下來#方便關閉時,kill掉#$$記錄當前的進程id,$!記錄上次啟動的進程id#nohup 是後台掛起線程方式運行,並將記錄檔輸出到nohup.out裡面,進行監控 nohup java -jar start.jar &> nohup.out & echo $! >pid&#echo $$ > pid[[email protected] solr]$
(3)linux下,將字串日期,格式化為時間戳記:
Java代碼
- [search@fsedump01sand tempshell]$ date -d ‘2015-12-01‘ +%s
- 1448899200
-
備忘幾個有用的shell指令碼