shell脚本语句目录
1.当前系统前一个小时,天,月的输入格式
0.1.一小时前
date +"%Y%m%d%H" -d “-1 hour”
0.2.几天前这种写法
date7=`date -d "- 7 days" +"%Y-%m-%d"`
date6=`date -d "- 6 days" +"%Y-%m-%d"`
date5=`date -d "- 5 days" +"%Y-%m-%d"`
date4=`date -d "- 4 days" +"%Y-%m-%d"`
date3=`date -d "- 3 days" +"%Y-%m-%d"`
date2=`date -d "- 2 days" +"%Y-%m-%d"`
date1=`date -d "- 1 days" +"%Y-%m-%d"`
0.3. 几分钟之前
[root@localhost ~]# date "+%H:%M:%S"
16:04:45
[root@localhost ~]# date "+%H:%M:%S" -d "-5 minutes"
15:59:50
[root@localhost ~]# date -d"1 day ago" +%Y-%m-%d
2019-01-17
[root@king ~]# date +\ %H:%M
15:46
- 对应 时间的那个 + 写在"" 内和 “” 外都是一样的。
[root@king ~]# date "+%H:%M" -d "-5 minutes"
11:10
[root@king ~]# date +"%H:%M" -d "-5 minutes"
11:11
- 关于在shell脚本中获取上个月最后一天的日期方法
[root@king ~]# date -d"$nowdate last month" +%Y%m%d ## 上个月的最后一天
20190302
[root@king ~]# date -d"$nowdate last month"
2019年 03月 02日 星期六 16:10:18 CST
[root@king ~]# date -d"$nowdate last year"
2018年 04月 02日 星期一 16:10:56 CST
[root@king ~]# date -d"$nowdate last day"
2019年 04月 01日 星期一 16:11:13 CST
[root@king ~]# date -d"$nowdate last day" +%Y%m%d ## 上个月的最后一天
20190401
线上使用的一些时间定义手法
TIME_FORMAT="%Y-%m-%d %H:%M"
CURRENT_TIME=`date +"%Y-%m-%d %H:%M:%S"`
TIME_PATTERM_10=`date -d "$CURRENT_TIME" +"$TIME_FORMAT"`
TIME_PATTERM_20=`date -d "10 minute ago $CURRENT_TIME" +"$TIME_FORMAT"`
TIME_PATTERM_30=`date -d "20 minute ago $CURRENT_TIME" +"$TIME_FORMAT"`
TIME_PATTERM_10=${TIME_PATTERM_10:0:15}.:..
TIME_PATTERM_20=${TIME_PATTERM_20:0:15}.:..
TIME_PATTERM_30=${TIME_PATTERM_30:0:15}.:..
1.1 当前日志的写法
date +%F
2019-09-26
2.当前系统时间,可以按照年月日 时分妙进行输出
date +%Y%m%d%H%M
date +"%Y-%m-%d %H:%M:%S"
[root@localhost ~]# date +%F
2019-01-17
[root@localhost ~]# date '+%H'
10
系统昨天的这个时间
[root@localhost ~]# date -d yesterday “+%Y-%m-%d”
2019-01-16
[root@localhost ~]# date -d yesterday +%Y%m%d
20190116
3.提取服务器IP
ifconfig |awk ‘/addr:10.101/{print$2}’
/sbin/ifconfig|grep inet|grep -v ‘inet6’|grep -v ‘127.0.0.1’|awk ‘BEGIN{FS="[ :]"} {print $13}’
/sbin/ifconfig | grep ‘inet addr:’| grep -v ‘127.0.0.1’ | cut -d: -f2 | awk ‘{ print $1}’ |head -n1
/sbin/ifconfig |awk ‘/addr:10.101/{print$2}’|cut -d: -f2
4.如何通过shell 进行邮件的发送
echo "${host}-180${i}0的bossquery.log.${nowtime}.bak的日志请求数为${count},请关注!"|mail -s "$ip bossquery日志异常" $MAILLIST
5.定义一个目录的路劲,通过脚本进行切换
[root@localhost shell]# d=/root/shell
[root@localhost shell]# echo $d
/root/shell
[root@localhost shell]# echo ${d}
/root/shell
[root@localhost shell]# cd
[root@localhost ~]# cd ${d}
[root@localhost shell]# cd
[root@localhost ~]# echo $d
/root/shell
6.通过top uptime 进行查看负载均衡的信息
[modps@gd-mopps02 shell]$ top -b -d 1 -n 2|grep ‘%id’
Cpu(s): 13.8%us, 3.6%sy, 0.0%ni, 81.0%id, 0.1%wa, 0.0%hi, 1.5%si, 0.0%st
Cpu(s): 14.0%us, 3.7%sy, 0.0%ni, 81.3%id, 0.0%wa, 0.0%hi, 0.9%si, 0.0%st
[modps@gd-mopps02 shell]$ top -b -d 1 -n 2|grep ‘%id’|awk -F “[ %]” ‘END{print 100-$10}’
24.8
7.这个命令啥卵意思啊,有时间研究一下
netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
8.邮件发送的书写格式
mail -s "${ip}_${sumdate}益生康广告提数" $MAILLIST < ${ouputpath}${sumdate}-clientAd.txt
9.在shell脚本中经常出现的exit0 和exit1
exit0 是正常的退出脚本
exit1 是非正常的退出脚本
在liunx系统中 echo $? 是可以检查上一条命令的执行结果,0 代表的是正常,非0 代表的是非正常
exit 也是根据这样的思想进行的
10.在shell脚本中经常会有一些,判断文件是否存在的语句
if [ ! -f ${path}/httpd.conf.fenliubackup ]
判断文件是否存在,如果文件不存在就需要创建文件,对应过期的日志信息,还需要把日志信息给删除。 这个语法结构这是在这两方面进行使用
https://www.cnblogs.com/dylancao/p/9178659.html
11.ftp 在脚本中的语句
cd /opt/aspire/product/clientinf/back
lftp -u modps,Gw3fv+2015-07 sftp://10.153.83.46 <<EOF
#cd pkgs
cd /opt/aspire/product/modps/ppsbackup
put KaTeX parse error: Expected group after '_' at position 7: {name}_̲{ip}${checktime}.ap.tar.gz
put KaTeX parse error: Expected group after '_' at position 7: {name}_̲{ip}${checktime}.mo.tar.gz
bye
12. liunx 定义环境变量
PATH=/sbin:/usr/bin/:.:/usr/local/bin:/bin
export PATH
PATH是定义环境变量 export PATH 是使环境变量生效
但是这种方法是使原来的变量覆盖
13.shell脚本字体带颜色输出,以及字体的特殊结构输出
https://www.jb51.net/article/141286.htm
14.shell脚本使用sed提取IP
ifconfig eth0 | sed -n '2p' | sed -r 's#.*inet(.*)netmask.*#\1#'