脚本的功能实现从/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 FILESFILES DIR
cd $DIR ; mkdir –p abc
rm -rf $FILES
echo “The Shell Scripts exec successfully !”
“自动 CP 并删除文件”的脚本编写完毕,保存退出即可。
自动备份 Mysql 数据库脚本
#!/bin/sh
#auto backup mysql
#wugk 2012-12-12
#Define PATH 定义变量BAKDIR=/data/backup/mysql/`date +%Y-%m-%d`
MYSQLDB=webapp
MYSQLPW=backup
MYSQLUSR=backup
#must use root user run scripts 必须使用 root 用户运行,$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 $BAKDIR exists....
fi
#Use mysqldump backup mysql 使用 mysqldump 备份数据库
/usr/bin/mysqldump -uMYSQLUSR−pMYSQLUSR -pMYSQLPW -d
MYSQLDB>MYSQLDB >BAKDIR/webapp_db.sqlecho "The mysql backup successfully "
自动打包 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.tgzi.tgz i
done
echo “The scripts exec end, Files tar successfully !”
自动拒绝恶意 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 <
++++++++++++++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 IPTABLECONF|grepIPTABLE_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