shell工作应用总结

一、简介

      linux下shell在工作中的部分总结,仅供参考使用。

二、详解

(1)svn文件修改错乱,重新更新

#!/usr/bin/sh
CURRENT_DIR=`pwd`
echo "开始从SVN上面重新导入当前目录下所有源码"
TMP_DIR=`ls -R | grep './'`
for MK_DIR in $TMP_DIR
do
  DIR_LEN=`expr length "$MK_DIR"`
  let DIR_LEN=DIR_LEN-1
  cd `echo $MK_DIR |cut -c 1-"$DIR_LEN"`
  rm *.cpp *.h makefile *.mk
  cd $CURRENT_DIR
done
svn up
echo "完成"

(2)svn提交修改代码

svn st | grep '^[AMD]' | cut -c 9- | xargs svn ci -m "commit"

(3)svn递归清除.SVN文件

linux下:
find . -name ".svn" -exec rm -rf {} \;
或者:
find . -type d -name ".svn"|xargs rm -rf
window下新建svn.cmd文件:
for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"
ping 192.168.0.1>nul

(4)执行所有makefile

#!/usr/bin/sh
CURRENT_DIR=`pwd`
echo "开始编译当前目录下所有源码"
TMP_DIR=`find ./ -name makefile`
for MK_DIR in $TMP_DIR
do
  DIR_LEN=`expr length "$MK_DIR"`
  let DIR_LEN=DIR_LEN-8
  cd `echo $MK_DIR |cut -c 1-"$DIR_LEN"`
  pwd
  make clean
  make all
  cd $CURRENT_DIR
done
echo "完成"

(5)shell时间测试

#!/bin/bash
source ~/.profile
START_TIME=`date '+%Y%m%d%H%M%S'`
START_TIME1=`date '+%Y-%m-%d-%H-%M-%S'`
echo $START_TIME1
hadoop fs -put /public/interf/ao_test_hp/ao/logdata.txt /sid/log/log.txt
END_TIME=`date '+%Y%m%d%H%M%S'`
END_TIME1=`date '+%Y-%m-%d-%H-%M-%S'`
echo $END_TIME1
RESULT=`expr $END_TIME - $START_TIME`
echo "时间(s):"$RESULT

(6)shell执行C程序

#!/bin/bash
#while true
#do
#############################################
#自己配置的变量
file_dir="/public/interf/framework/bin"   #文件所在目录
exe_DIR="/public/interf/framework/c_sid/develop/plugin/log_proxy_plugin/framework_test/import_data"   #程序所在目录
#############################################

cd $file_dir 
CUR_TIME=`date '+%Y%m%d%H'`

PRE_TIME=`expr $CUR_TIME - 1`

FILEPATH=`find . -type d -name "$PRE_TIME" -prune`

if [ -z $FILEPATH ]
  then
    echo "[`date '+%Y-%m-%d %H:%M:%S'`]the log file is not one hour before!"
else
    e_LEN=`expr length "$FILEPATH"`
    f_LEN=`expr $e_LEN - 9`
    DIR=`echo $FILEPATH | cut -c "$f_LEN"-"$e_LEN"`
    cd $exe_DIR
    ./import $file_dir $DIR
    echo "[`date '+%Y-%m-%d %H:%M:%S'`][$DIR] import successed!"
fi 

#sleep 3600
#done
exit 1
#!/bin/bash
#############################################
#自己配置的变量
file_dir="/public/interf/framework/bin"   #文件所在目录
exe_DIR="/public/interf/framework/c_sid/develop/plugin/log_proxy_plugin/framework_test/import_data"   #程序所在目录
end_time=2011090000;    #终止时间
#############################################

cd $file_dir 
CUR_TIME=`date '+%Y%m%d%H'`
for((PRE_TIME = $CUR_TIME; PRE_TIME >= $end_time; PRE_TIME--))
  do
    FILEPATH=`find . -type d -name "$PRE_TIME"`
    if [ $FILEPATH ]
      then
        e_LEN=`expr length "$FILEPATH"`
        f_LEN=`expr $e_LEN - 9`
        DIR=`echo $FILEPATH | cut -c "$f_LEN"-"$e_LEN"`
        cd $exe_DIR
        ./import $file_dir $DIR
        echo "[`date '+%Y-%m-%d %H:%M:%S'`][$DIR] import successed!"
    fi  
done
exit 1

(7)shell检测程序运行(结合定时任务)

##################################################################################
CUR_HOUR=`date '+%y年%m月%d日%H时%M分%S秒'`

cd ~/framework/bin

ps -ef | grep framework|awk '{print $1$2$3$4$5$6$7$8$9$10}'| grep sid_test01|awk '{
                cmd_list[NR] =  $1 ;
        }
        END { 
        if (NR==0 ) {print "测试程序sid_test01已经死掉,重启"
                system("nohup framework -p sid_test01> /dev/null &");
                system("printf \"%s 重启进程完成\n\" `date '+%y年%m月%d日%H时%M分%S秒'`");
        }
  }' 

ps -ef | grep framework|awk '{print $1$2$3$4$5$6$7$8$9$10}'| grep sid_test02|awk '{
                cmd_list[NR] =  $1 ;
        }
        END { 
        if (NR==0 ) {print "测试程序sid_test02已经死掉,重启"
                system("nohup framework -p sid_test02> /dev/null &");
                system("printf \"%s 重启进程完成\n\" `date '+%y年%m月%d日%H时%M分%S秒'`");
        }
  }'  
  
ps -ef | grep framework|awk '{print $1$2$3$4$5$6$7$8$9$10}'| grep sid_test03|awk '{
                cmd_list[NR] =  $1 ;
        }
        END { 
        if (NR==0 ) {print "测试程序sid_test03已经死掉,重启"
                system("nohup framework -p sid_test03> /dev/null &");           
                system("printf \"%s 重启进程完成\n\" `date '+%y年%m月%d日%H时%M分%S秒'`");
        }
  }'   
 exit 1 

(8)shell更改所有子目录权限

for file in `find . -print`
do
chmod 777 -R $file
done

(9)shell压缩和解压缩

一、压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
二、解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar -xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
三、总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

三、总结

(1)shell相关的内容可参考其他文档。
(2)若有建议,请留言,在此先感谢!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌托邦2号

博文不易,支持的请给予小小打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值