Linux运维技巧实例分析
这篇文章主要讲解了“Linux运维技巧实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux运维技巧实例分析”吧!
成都创新互联公司是一家专业提供阿城企业网站建设,专注与成都网站制作、成都做网站、H5建站、小程序制作等业务。10年已为阿城众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
一、生成随机字符串
# 去掉/\两个字符,取第5到14位。 openssl rand -base64 40 | sed 's/[/\]//g' | cut -c 5-14 # 或者生成16位随机字符,1个,要包含数字-n和特殊字符-y。
二、文件名批量修改
法一
#!/bin/bash Filename=_faster.html Dirname="/test" cd $Dirname||exit 1 for n in `ls` do name=$(echo ${n}|awk -F '_' '{print $1}') mv $n ${name}${Filename} done
法二
#!/bin/bash Path="/test" cd $Path && \ ls | awk -F '_' '{print "mv " "$0" "$1"_faster.html"}' | bash
法三
rename
三、并发ping
#!/bin/bash CMD="ping -W 2 -c 2" IP="192.168.74." for n in $(seq 254);do { $CMD $IP$n > /dev/null 2>&1 if [ $? -eq 0 ];then echo "$IP$n fi }& done wait # 主shell进程需要等待各并发子进程的结束返回 echo
四、解决DOS攻击
file=$1 while true; do awk '{print $1}' $1 | grep -v "^$" | sort | uniq -c > /tmp/tmp.log exec < /tmp/tmp.log while read line; do ip=`echo $line | awk '{print $2}'` count=`echo $line | awk {print $1}` if [ $count -gt 500 ] && [ `iptables -nL | grep "$ip" | wc -l` -lt 1 ]; then iptables -I INPUT -s $ip -j DROP echo "$line >> /tmp/droplist_$(date +%F).log fi done sleep 3600 done
五、MySQL备份
不登录数据库如何执行sql命令
#!/bin/sh MYUSER=root MYPASS=123456 MYCMD="mysql -u$MYUSER -p$MYPASS for db in db1 db2 db3; do $MYCMD "use $db;show tables;" done
分库备份
#!/bin/sh MYUSER=root MYPASS=123456 DBPATH=/root/test/db_bak MYCMD="mysql -u$MYUSER -p$MYPASS MYDMP="mysqldump -u$MYUSER -p$MYPASS" [ ! -d $DBPATH ] && mkdir $DBPATH for db in `$MYCMD "show databases;" | sed '1d' |egrep -v "mysql|schema|sys"`; do if [ -z `echo $db|grep "test"` ];then # 不包含test字符串 $MYDMP $db | gzip >$DBPATH/${db}_$(date +%F).sql.gz fi done
注意文中包含字符串的判断可有多种方式Shell判断字符串包含关系的几种方法 其中“$A =~ $B”是判断A包含B最简单的方式。
六、入侵检测与报警
建立初始的文件指纹库
find /var/html/www -type f | xargs md5sum >
利用指纹库检查文件是否被篡改
md5sum -c --quiet /opt/checksum.bak
监测文件数量及文件名的变化
find /var/html/www -type f > /opt/filename.bak find /var/html/www -type f > /opt/filename.now diff
cron
* /3 * * * * /bin/sh /path/to/monitor.sh > /dev/null 2>&1
七、产生随机数
# 0~32767 echo $RANDOM echo "bulabula$RANDOM" | md5sum | cut -c 8-15 openssl rand -base64 8 date +%s%N head /dev/urandom|cksum cat /proc/sys/kernel/random/uuid apt install expect expect_mkpasswd -l 8 -d 2 -c 3 -C 2 -s 1 yum install expect mkpasswd -l 8 -d 2 -c 3 -C 2 -s 1 # 参数说明
八、子脚本的调用方式
fork方式(分身,复制——产生新的PID)
执行方式
/path/script.sh /bin/sh /path/script.sh
系统启动一个子shell执行调用的脚本(生成新的PID——子shell)。子shell执行的时候父shell处于Sleep状态(S)。子shell执行完毕后返回到父shell。子shell可以继承父shell的环境变量,但反之不然。
exec方式(变身——沿用原来的PID)
执行方式
exec
被调用的脚本与父脚本在同一个shell内运行(不产生新的PID),但使用exec调用一个新脚本后,父脚本中exec之后的内容就不会再执行了——变身。
source方式(类似exec方式,沿用原来的PID)
执行方式
source /path/script.sh .
source方式开启的脚本和父脚本在同一个shell中运行(不产生新的PID)。source调用一个新脚本,执行完成后,父脚本source之后的内容还会再执行。
九、shell逐行读取文件
法一
exec
法二
cat file | while read line; do echo $line done
法三
while read line; do echo $line done < file
法四
for line in `cat test.txt`; do echo $line done十、测试表达式区别
测试表达式符号
[ ]
test
[[ ]]
(())
边界是否需要空格
Y
Y
Y
N
支持的逻辑运算符
!,-a,-o
!,-a,-o
!,&&,┃┃
!,&&,┃┃
支持的算数运算符
-eq,-gt,-lt,-ge,-le
-eq,-gt,-lt,-ge,-le
-eq,-gt,-lt,-ge,-le和=,>,<,>=,<=
-eq,-gt,-lt,-ge,-le和=,>,<,>=,<=
字符串比较
=,==,!=
=,==,!=
=,==,!=
=,==,!=
是否支持通配*
N
N
Y
N
感谢各位的阅读,以上就是“Linux运维技巧实例分析”的内容了,经过本文的学习后,相信大家对Linux运维技巧实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
新闻标题:Linux运维技巧实例分析
转载来源:http://pwwzsj.com/article/ihohoi.html