tab键适用于yaml校验(制表符)
grep $'\t' 文件名
用
date相减
- startTime=`date +%Y%m%d-%H:%M:%S`
- startTime_s=`date +%s`
-
- endTime=`date +%Y%m%d-%H:%M:%S`
- endTime_s=`date +%s`
-
- sumTime=$[ $endTime_s - $startTime_s ]
-
- echo "$startTime ---> $endTime" "Total:$sumTime seconds"
time
- time sh xxx.sh
- # 会返回3个时间数据
- # real 该命令的总耗时, 包括user和sys及io等待, 时间片切换等待等等
- # user 该命令在用户模式下的CPU耗时,也就是内核外的CPU耗时,不含IO等待这些时间
- # sys 该命令在内核中的CPU耗时,不含IO,时间片切换耗时.
- #开放端口(7777)
- iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j ACCEPT
- #保存
- /etc/rc.d/init.d/iptables save
- #重载
- service iptables restart
- firewall-cmd --zone=public --add-port=7777/tcp --permanent
- #重新载入
- firewall-cmd --reload
- setenforce 0
- sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
(测试网络连通性)
python -m SimpleHTTPServer 9099
split -d -b 100m enterprise.log enterprise-
- #查找
- du -m --max-depth=1 |sort -gr
-
- lsof |grep delete
-
- #删除
- lsof |grep delete|awk '{print $2}'|xargs -n1 kill -9
netstat -na|awk '/^tcp/ {++S[$NF]} END {for(i in S) print i,S[i]}'
mkisofs -o ./package.iso -J -R -A -V -v package
创建
fallocate -l 10G test4
撤销
fallocate -d test4
系统版本:CentOS7
脚本
/usr/bin/disk-monitor.sh内容如下:
- #!/bin/bash
- LOCAL_HOST=192.168.1.3
- RECEIVE_LIST="aaa@xxx.com"
- CC_LIST="bbb@xxx.com,ccc@xxx.com,ddd@xxx.com"
-
- MOUNT_NODE_COUNT=`df -h|wc -l`
-
- echo "挂载节点数为:${MOUNT_NODE_COUNT}"
-
- while [[ ${MOUNT_NODE_COUNT} -ne 1 ]];
- do
- FILE_SYSTEM=`df -h |sed -n "$MOUNT_NODE_COUNT p"|awk '{print $1}'`
- MOUNT_NODE=`df -h |sed -n "$MOUNT_NODE_COUNT p"|awk '{print $6}'`
- PART_FREE_SPACE=`df -h |sed -n "$MOUNT_NODE_COUNT p"|awk '{print $4}'`
- UTILIZATION_RATE=`df -h |sed -n "$MOUNT_NODE_COUNT p"|awk '{print $5}'`
- UTILIZATION_RATE_VALUE=`echo ${UTILIZATION_RATE}|sed 's/.$//'`
- # echo "文件系统:`echo ${FILE_SYSTEM}`,挂在节点:`echo "$MOUNT_NODE"`,分区磁盘使用率为:`echo ${UTILIZATION_RATE}`, 剩余磁盘空间:`echo ${PART_FREE_SPACE}`"
- if [[ ${UTILIZATION_RATE_VALUE} -gt 95 ]]; then
- MAIL_CONTENT="[当前地址]:${LOCAL_HOST}
- [文件系统]:`echo ${FILE_SYSTEM}`
- [挂在节点]:`echo "$MOUNT_NODE"`
- [分区磁盘使用率]:`echo ${UTILIZATION_RATE}`
- 已达告警阈值,请及时清理!!!"
- echo ${MAIL_CONTENT}
- echo "${MAIL_CONTENT}" | mail -s "磁盘剩余空间告警" -c ${CC_LIST} ${RECEIVE_LIST} &> /dev/null
- fi
- let MOUNT_NODE_COUNT--
- done
安装
mailx
yum install -y mailx
配置
mailx,/etc/mail.rc追加以下内容
set from=aaa@xxx.com set smtp=smtp.xxx.com:587 set smtp-auth-user=aaa set smtp-auth-password=****** set smtp-auth=login set smtp-use-starttls set ssl-verify=ignore set nss-config-dir=/etc/pki/nssdb/配置定时任务
- cat >> /etc/crontab <<EOF
- 0 */1 * * * root /usr/bin/disk-monitor.sh
- EOF
- #!/bin/bash
-
- # 域名
- export domain=www.example.com
-
- # IP地址(可选)
- export address=192.168.1.11
-
- # 国家
- export contryName=CN
-
- # 省/州/邦
- export stateName=Liaoning
-
- # 地方/城市名
- export locationName=Shenyang
-
- # 组织/公司名称
- export organizationName=example
-
- # 组织/公司部门名称
- export sectionName=develop
-
- echo "Getting Certificate Authority..."
- openssl genrsa -out ca.key 4096
- openssl req -x509 -new -nodes -sha512 -days 3650 \
- -subj "/C=$contryName/ST=$stateName/L=$locationName/O=$organizationNaem/OU=$sectionName/CN=$domain" \
- -key ca.key \
- -out ca.crt
-
- echo "Create your own Private Key..."
- openssl genrsa -out $domain.key 4096
-
- echo "Generate a Certificate Signing Request..."
- openssl req -sha512 -new \
- -subj "/C=$contryName/ST=$stateName/L=$locationName/O=$organizationNaem/OU=$sectionName/CN=$domain" \
- -key $domain.key \
- -out $domain.csr
-
- echo "Generate the certificate of your registry host..."
- cat > v3.ext <<-EOF
- authorityKeyIdentifier=keyid,issuer
- basicConstraints=CA:FALSE
- keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
- extendedKeyUsage = serverAuth
- subjectAltName = @alt_names
-
- [alt_names]
- DNS.1=$domain
- DNS.2=hostname
- IP.1=$address
- EOF
-
- openssl x509 -req -sha512 -days 3650 \
- -extfile v3.ext \
- -CA ca.crt -CAkey ca.key -CAcreateserial \
- -in $domain.csr \
- -out $domain.crt
-
- echo "Convert server $domain.crt to $domain.cert..."
- openssl x509 -inform PEM -in $domain.crt -out $domain.cert
-
- echo "merge the intermediate certificate with your own certificate to create a certificate bundle..."
- cp $domain.crt /etc/pki/ca-trust/source/anchors/$domain.crt
- update-ca-trust
-
- echo "successful..."
批量修改为
unix
- for file in `find hack/lib -name *.sh`
- do
- vi +':w ++ff=unix' +':q' ${file}
- done
查看内存占用前3进程
$ ps aux --sort -rss |grep -v PID | head -3
第一个sort进行ip地址排序,sort -nr对数量排序
- $ cat /var/log/nginx/access.log|awk '{print $1}'|sort|uniq -c|sort -nr
- 396 10.30.2.169
- 67 192.168.129.64
- 34 192.168.129.176
- 6 10.9.48.129
- $ cat /var/log/nginx/access.log|awk '{print $9}'|sort|uniq -c|sort -rn
- 529 200
- 6 302
- 5 401
- 4 502
- 4 400
- 4 304
- 2 499
- 1 201
- 1 101
在日常管理中,我们经常会遇到swap分区使用比较多,那么导致是那些进程使用的呢,其实我们可以通过/proc/pid/下的smaps来获得。使用下面的命令可以列出所有进程占用的swap分区的大小,方便我们分析问题。
- for i in $(cd /proc;ls | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head
-
- 获取到占用swap分区比较多的PID,然后就可以通过PID获取到进程的相关信息了。
-
- ps aux | grep ${pid}