shell脚本
Shell脚本案例
a) 自动删除test.txt文件脚本
脚本的功能实现从/root/目录cp拷贝test.txt到/tmp目录,并且在/tmp目录创建一个目录abc,并且删除原/root/下test.txt。
首先命名脚本名称为auto_cp.sh(名称可以自己定义),内容如下:
#!/bin/bash
#This is First shell for auto cp Files
#定义文件和目录变量
FILES=/root/test.txt
DIR=/tmp
cp $FILES $DIR
cd $DIR ; mkdir –p abc
rm -rf KaTeX parse error: Expected 'EOF', got '#' at position 98: …自动备份Mysql数据库脚本
#̲!/bin/sh
#auto…UID为系统变量
if
[ $UID -ne 0 ];then
echo This script must use the root user ! ! !
sleep 2
exit 0
fi
#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建
if
[ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
else
echo This is KaTeX parse error: Expected 'EOF', got '#' at position 23: …exists....
fi
#̲Use mysqldump b…MYSQLUSR -p$MYSQLPW -d BAKDIR/webapp_db.sql
echo "The mysql backup successfully "
c) 自动打包tar目录下log文件脚本
#!/bin/sh
#auto tar czf shell to Files
#Author wugk 2014-05-15
SRC_DIR=/opt/
DES_DIR=/opt/backup/date +%Y%m%d
If
[ ! –d $DES_DIR ];then
Mkdir –p $DES_DIR
fi
for i in find $SRC_DIR -name “*.log”
do
tar czf $i.tgz $i
done
echo “The scripts exec end, Files tar successfully !”
d) 自动拒绝恶意IP脚本
#!/bin/sh
#auto drop ssh failed IP address
#wugk 2013-1-2
#定义变量
SEC_FILE=/var/log/secure
#如下为截取secure文件恶意ip 远程登录22端口,大于等于4次就写入防火墙,禁止以后再登录服务器的22端口
IP_ADDR=tail -n 1000 /var/log/secure |grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -nr | uniq -c |awk ' $1>=4 {print $2}'
IPTABLE_CONF=/etc/sysconfig/iptables
echo
cat <<EOF
++++++++++++++welcome to use ssh login drop failed ip+++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++±-----------------------------------++++++++++++++++++
EOF
echo -n "请等待5秒后开始执行 "
for ((j=0;j<=4;j++)) ;do echo -n “----------”;sleep 1 ;done
echo
for i in echo $IP_ADDR
do
#查看iptables配置文件是否含有提取的IP信息
cat $IPTABLE_CONF |grep $i >/dev/null
if
[ $? -ne 0 ];then
#判断iptables配置文件里面是否存在已拒绝的ip,如何不存在就不再添加相应条目
sed -i “/lo/a -A INPUT -s $i -m state --state NEW -m tcp -p tcp --dport 22 -j DROP” $IPTABLE_CONF
else
#如何存在的话,就打印提示信息即可
echo “This is $i is exist in iptables,please exit …”
fi
done
#最后重启iptables生效
/etc/init.d/iptables restart
上一篇: Linux下的sort排序命令详解
下一篇: 实现错误日志记录