一些有用的shell脚本
时间: 2023-11-01 09:57:35 浏览: 107
以下是一些有用的shell脚本:
1. 杀死所有脚本:
```bash
ps aux|grep 指定进程名|grep -v grep|awk '{print $2}'|xargs kill -9
```
该脚本通过筛选出影响负载的进程,然后将其一次性全部杀死。
2. 扫描主机端口状态:
```bash
HOST=1
PORT="22 25 80 8080"
for PORT in $PORT; do
if echo &>/dev/null > /dev/tcp/$HOST/$PORT; then
echo "PORT open"
else
echo "PORT close"
fi
done
```
该脚本可以扫描指定主机的多个端口,判断端口的开放状态。
3. 打印示例语句中字母数小于6的单词:
```bash
for s in Bash also interprets a number of multi-character options; do
n=$(echo $s | wc -c)
if [ $n -lt 6 ]; then
echo $s
fi
done
```
该脚本可以打印示例语句中字母数小于6的单词。
4. 检测两台服务器指定目录下的文件一致性:
```bash
dir=/data/web
b_ip=192.168.88.10
find $dir -type f | xargs md5sum > /tmp/md5_a.txt
ssh $b_ip "find $dir -type f | xargs md5sum > /tmp/md5_b.txt"
scp $b_ip:/tmp/md5_b.txt /tmp
for f in $(awk '{print $2}' /tmp/md5_a.txt); do
if grep -qw "$f" /tmp/md5_b.txt; then
md5_a=$(grep -w "$f" /tmp/md5_a.txt | awk '{print $1}')
md5_b=$(grep -w "$f" /tmp/md5_b.txt | awk '{print $1}')
if [ "$md5_a" != "$md5_b" ]; then
echo "$f changed."
fi
else
echo "$f deleted."
fi
done
```
该脚本可以检测两台服务器指定目录下的文件一致性,通过对比文件的md5值来判断文件是否一致。
请注意,在以上脚本中,引用、和分别指代了不同的脚本内容。
阅读全文