No.1 查找某目录下超过固定大小的文件,并清空其文件内容
比如查找/data/logs/apache
目录下文件大小超过1G的文件,查找到后,并将其大小重置清空,命令如下:
find /data/logs/apache/ -type f -size +1G -exec sh -c "> {}" \;
No.2 给你脚本加一个标准演示的横幅
主要是利用了printf
命令的格式化功能,脚本示例如下:
#!/bin/bash
banner()
{
echo "+------------------------------------------+"
printf "| %-46s |\n" "`date`"
echo "| |"
printf "|`tput bold` %-40s `tput sgr0`|\n" "$@"
echo "+------------------------------------------+"
}
banner "Starting the Job"
sleep 3
banner "Copying files"
cp -v /etc/hosts /tmp
cp -v /etc/passwd /tmp
sleep 4
banner "Downloading :png file"
curl https://fashengba.com/usr/themes/pinghsu/images/thumbs/55.jpg -o /tmp/55.jpg
sleep 5
banner "Finished."
效果如下:
No.3 shell探测远程主机端口开放
方法一nmap
命令:
#!/bin/bash
# nmap ip/hostname/domain -p RemotePort
ip_add="www.baidu.com"
port=80
PORT_COUNT=`nmap $ip_add -p $port|grep open|wc -l`
[[ $PORT_COUNT -ge 1 ]] && echo "$ip_add $port is ok." || echo "$ip_add $port is unknown."
# Tcp
nmap -sT baidu.com -p 80
# UDP
nmap -sU baidu.com -p 161
方法二nc
命令:
# -v: 显示详情 -z: 参数告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换 -w: <超时秒数> 设置等待连线的时间
nc -v -z fashengba.com 80
nc -w 1 fashengba.com 80 && echo OK|| echo NO
# Centos7 nc
nc -w 5 $Host $Port < /dev/null
方法三telnet
命令
# 能够过滤到Connected 则代表连通OK
echo -e "\n"|telnet baidu.com 80|grep --color Connected
方法四:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
这个方法失败的时候会等待建立socket,退出不了,所以只能测试连接成功,参考:http://suo.im/4T0PS9
以个人经验,写脚本探测端口的可用性,还是利用nc
命令较好。
No.4 Shell下判断命令是否存在最佳实践
if ! [ -x "$(command -v git)" ]; then
echo 'Error: git is not installed.' >&2
exit 1
fi
No.5 Awk统计命令 求和 求平均 最大值 最小值
awk求和:
cat test.txt | awk '{sum+=$1} END {print "Sum =", sum}'
awk求平均:
cat test.txt |awk '{sum+=$1} END {print "Average =", sum/NR}'
awk求最大值:
cat test.txt |awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'
awk求最小值:
cat test.txt | awk 'BEGIN {min = 1999999} {if ($1<min) min=$1 fi} END {print "Min=", min}'
No.6 查看Linux非系统进程
ps --ppid 2 -p 2 -N
ps -f --ppid 2 -p 2 -N
No.7 查看linux系统资源性能信息
dstat -cdlmnpsyt 5
No.8 Yum安装指定版本软件包
先搜索:
yum --showduplicates list PACKAGE | expand
然后安装:
yum install <package name>-<version info>
未完待续......
本文由 空心菜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 17, 2020 at 09:10 am