一些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
- 一些shell代码片段
- wxWidgets一些代码片段
- ios一些代码片段
- 一些有用的代码片段
- 一些实用PHP代码片段
- shell脚本用到的代码片段
- zend 一些常用的代码片段
- android一些很有用的代码片段
- wxWidgets一些代码片段(不断更新中)
- Android一些很有用的代码片段
- 一些实用的jQuery代码片段
- 一些实用的jQuery代码片段
- 一些有关图像处理的代码片段
- Andorid中一些重要的代码片段
- 一些实用的JQuery代码片段收集
- 一些实用的jQuery代码片段
- HashTable & HashMap 的一些代码片段
- 一些数据结构题目的代码片段
- MySQL触发器更新本表数据异常:Can’t update table ‘tbl’ in stored function/trigger because it is already used by s
- [Lecture] hash join
- linux查看磁盘大小
- 可用的RTMP直播地址
- iOS开发UI篇—字典转模型
- 一些shell代码片段
- 【第三章】 DI 之 3.2 循环依赖 ——跟我学spring3
- adb 查看最上层成activity名字
- 安卓防止反编译,混淆eclipse 的项目代码步骤
- C++入门(8):类的继承(1)
- 【SQL Server】SQL触发器经验详解
- 智能Agent概述
- React入门(四) 评论模块续-评论表单
- break、continue、return区别