一些shell代码片段

来源:互联网 发布:淘宝设置运费模板 技巧 编辑:程序博客网 时间:2024/06/05 05:22

日期与时间

1 获取昨天日期

last_date=$(date -d "yesterday" "+%Y%m%d")

2 获取7天前日期

last_seven_date=$(date -d "-7" "+%Y%m%d")

3 获取一个小时前时间

last_hour=$(date -d "-1 hours" "+%Y-%m-%d_%H")

4 获取当前日期

current_date=$(date "+%Y%m%d")

数字

1 判断是否相等

if [ ${last_hour} == 12 ]; then    echo "last hour is 12"elif [ ${last_hour} -lt 22 ]; then    echo "it time to happy"elif [ ${last_hour} == 23 ]; then    echo "it's a new day"fi

2 判断是否有值

if [ -z ${value} ]; then    value="0"fi

3 循环

for (( i=1; i<8; i++ )); do    echo ${i}done

文件

1 写入文件的时候不写入换行符(在追加内容的话,还是在同一行)

echo -n "hahaha" > log.txt

2 逐行读取文件内容

for line in `cat login.log`doecho ${line}done

3 获取文件更改时间

modify_time=`stat -c %Y ${file_path}`

传输文件

1 ftp自动传输文件(获取远程ftp服务器上的文件)

ftp -n <<!open 127.0.0.1user username passwordget ${remote_file} ${local_file}bye!

2 scp自动传输文件(用户名密码需要写在脚本里,而不是让机器相互信任)

expect -c " spawn scp ${local_file} username@127.0.0.1:/home/username/${new_Name} expect {    \"*assword\" {set timeout 300; send \"password\r\";}    \"yes/no\" {send \"yes\r\"; exp_continue;} } expect eof"

tomcat自动化部署脚本

部署的时候做的事情:
1. 检查新的war文件是否存在
2. shutdown当前tomcat,并且kill掉进程(避免shutdown无法完全关闭进程)
3. 备份上一次部署的war,删除原来的项目文件夹(webapps下面解压开的那个)
4. 拷贝新的war到webapps下面
5. 启动tomcat
6. 打开logs/catalina.out

有一点需要注意的,该脚本最后打开了logs/catalina.out,请在你的连接工具(putty,xshell等)超时之前让这个脚本结束运行,不然的话,窗口超时的时候tomcat会被关闭(发送shutdown命令关闭,log里面可以清楚地看到,血淋淋的教训啊)。
原因看这里

#!/bin/shcd /home/admin/tomcat8warName='xxx'warLocation="/home/admin/tomcat8-xxx/${warName}.war"#check whether new war file is exists.if [ ! -f $warLocation]; thenecho $warLocation is not exist!exit 0fi#shutdown tomcatcd bin./shutdown.shcd ../#kill the pidps aux | grep tomcat8-xxx | grep java | awk '{print $2}' | xargs kill -9#backup and cleanvar=$(date "+%Y-%m-%d_%H:%M:%S")cp webapps/${warName}.war webapps/${warName}.war.${var}rm -r -f webapps/${warName}rm -r webapps/${warName}.warcp ${warName}.war webapps/${warName}.warcd bin./startup.shcd ../tail -f logs/catalina.out
0 0
原创粉丝点击