1.备份单个文件

#!/bin/bash
#备份单个文件
DATE=`/bin/date +%y%m%d`
/bin/tar -czpf /backup/$1.$DATE.tar.gz /backup/$1 >/dev/null
if [ $? -eq 0 ]
then
echo "$1 备份成功" >> /backup/$1.bak.log
else
echo "备份$1失败" >> /backup/$1.bak.log
fi

2.查找大于10M的文件和目录

#!/bin/bash
#查找大于10M的文件和目录
ll -h /var/log | awk '$5>10 && $5<10240 {print $5,$9}' > file.txt
cat file.txt

3.ping网段内所有的主机存活

#!/bin/bash
#ping网段内所有主机存活
for i in {..}
do
if ping -w -c 192.168..$i | grep "100%" >/dev/null
then
echo "192.168.31.$i YES!!!"
else
echo "192.168.31.$i NO!!!"
fi
done

4.查找前十个404的ip与访问量最多的十个ip

#/bin/bash
#查找前十个404的ip与访问量最多的前十个ip
no=`cat /var/log/httpd/access_log | awk '/404/{print $1}' | sort | uniq -c | sort -nr | head - | awk '{print $2}' `
pv=`cat /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr | head - | awk '{print $2}' `
echo "fang wen bu dao URL$no"
echo "zui da fang wen liang $pv"

5.算平均值,并以排序形式有规矩的列出

#!/bin/bash
#算平均值,并以排序形式有规矩的列出
cat |awk '{print $1,$2.($3+$4+$5)/3}' >/.txt
cat /.txt |awk '{print $1," " $2 " ", $3}' |sort -r >/fan.txt
sed '1c 班级 姓名 平均分数 ' /fan.txt >/fan
cat /fan.txt

6.ssh密码被尝试10次以上就禁用此ip

#!/bin/bash
#ssh密码被尝试十次以上就禁用此ip
ip=`cat /var/log/secure | awk '/^Apr/{print $4}' | sort | uniq -c |sort -nr | head - | awk '{print $2}' `
pv=`cat /var/log/secure | awk '/^Apr/{print $4}' | sort | uniq -c |sort -nr | head - | awk '{print $1}'`
if [ $pv -gt ];then
iptables -A INPUT -s $pv -p tcp --dport -j DROP
echo "yi lan jie $ip "
else
echo "ok !"
fi

7.远程备份周日完全备份,周一至周六增量备份

crontab=`echo "* * * * */0 sh beifen.sh" > /var/spool/cron/root`
scp=`echo "* * * * */0 scp access_log xsk@10.1.1.0:/home/xsk" >> /var/spool/cron/root`
A=`echo "* * * * 1-6 rsync -arHz --delete access_log xsk@10.1.1.10:/home/xsk " >> /var/spool/cron/root`
if [ -e /etc/spool/cron/root ];then
mkdir /var/spool/cron/root
echo "$crontab"
echo "$scp"
echo "$A"
else
echo "$crontab"
echo "$scp"
echo "$A"
fi

8.服务监控http。发现服务关闭则发送邮件

#!/bin/bash
#服务器监控http。发现服务关闭则发送邮件
if pgrep httpd>&/dev/null;then
echo "fu wu zheng chang"
else
service httpd restart
usernames="usr01 usr02 usr03"
for user in $usernames
do
mail -s "warning" $user@localhost.localdomain<zhengwen
done
fi

9.修改网卡配置文件内的ip与子网掩码

#/bin/bash
A=`awk -F\= '/^IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0`
B=`awk -F\= '/^NETMASK/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0`
sed -i '/^IPADDR/s/'$A'/'$'/' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i '/^NETMASK/s/'$B'/'$'/' /etc/sysconfig/network-scripts/ifcfg-eth0
#!/bin/sh
read -p "input" ip
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 &>/dev/null
if [ $? -gt ]
then
echo "IPADDR=$ip " >> /etc/sysconfig/network-scripts/ifcfg-eth0
else
sed -i '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=$ip " >>/etc/sysconfig/network-scripts/ifcfg-eth0
fi

10.将两个文件相同数值列出,并输出到文本内

echo "* * * 1-12 * sh /root/zuoye/ceshi.sh" > /var/spool/cron/root
diff file1 file2 | awk '{print $2}' | sed -e '/^$/d' > file

11.删除所有小于2M大于10M的以mp4.mp3的文件

a=`find / -type f -name "(*.mp3 && *.mp4)"`
for i in $a
do
b=`ls -l $i | awk '$5>2048 && $5<10240000 {print $9}'`
rm -rf $b
done

12.删除所有大于1M以上的mp4.mp3文件

a=`find / -type f   -name "*.mp3" -o -name "*.mp4" -a -size +1M`
for i in $a
do
rm -rf $i
done

13.查找所有有关192.168.20.0 网段的数据

#!/bin/sh
#查找所有有关192.168.20.网段的东西
find / -type f -exec grep -l "192.168.20.*"{} \;

14.查找大于10M的文件和目录

#!/bin/sh
#查找大于10M的文件和目录
ll -h /var/log | awk '$5>10 && $5<10240 {print $5,$9}' > file.txt
cat file.txt

15.ping网段内所有的主机存活

#!/bin/sh
#ping网段内所有主机存活
for i in {..}
do
if ping -w -c 192.168..$i | grep "100%" >/dev/null
then
echo "192.168.31.$i YES!!!"
else
echo "192.168.31.$i NO!!!"
fi
done

16.nginx启动服务脚本

#!/bin/bash
#nginx的启动服务脚本
# chkconfig: -
# description: nginx is a World Wide Web server. It is used to serve
pid="/usr/local/nginx/logs/nginx.pid"
on="/usr/local/nginx/sbin/nginx" start ()
{
if [ -f $pid ];then
echo "ON! qi dong cheng gong!!!"
else
echo "YES! cheng gong!!!"
#/bin/su - nginx -c "/usr/local/nginx/sbin/nginx $2 1>/dev/null 2>/dev/null"
/usr/local/nginx/sbin/nginx
fi
} stop ()
{
if [ -f $pid ];then
echo "YES! yi guan bi!!!"
killall nginx
else
echo "NO! yi guan bi!!!"
fi
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep
start
;;
exit)
exit
;;
*)
echo $"Usage: $0 (start,stop,restart)"
exit
;;
esac
exit

Shell 实践、常用脚本进阶的更多相关文章

  1. shell的常用脚本一

    批量创建用户名脚本: ######################################################################### # File Name: cr ...

  2. Linux实战(12):Centos装机常用脚本-进阶版

    #!/bin/bash #shell菜单演示 function menu() { echo -e `date` cat <<EOF ---------------------------- ...

  3. 15-1 shell脚本进阶

    shell脚本进阶 循环 循环执行 将某代码段重复运行多次 重复运行多少次 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 for, while, until for循环 for VAR i ...

  4. shell脚本进阶之条件测试与条件语句

       接着上篇博客,今天整理一下关于条件测试和条件语句方面的知识. shell脚本进阶之条件测试    在编写shell脚本时,经常需要对一些条件进行判断,可以使用测试命令test辅助完成测试过程.t ...

  5. shell常用脚本

    shell常用脚本 author:headsen chen  2017-10-17 15:36:17 个人原创,转载请注明,否则依法追究法律责任 1,vim  name.grep.sh 2,cat   ...

  6. Linux运维之shell脚本进阶篇

    一.if语句的使用 1)语法规则 if [条件] then 指令 fi 或 if [条件];then 指令 fi 提示:分号相当于命令换行,上面两种语法等同特殊写法:if[ -f"$file ...

  7. 常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript

    常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用 ...

  8. shell中常用的特殊符号

    在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...

  9. 游戏编程之Unity常用脚本类的继承关系

    前言学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略.本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结. 博文首发地址:http://tieba.b ...

随机推荐

  1. 关于linux - Centos 7 系统下使用PXE网络的方式(pxe+dhcpd+tftp+httpd)安装操作系统

    PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘.光驱等设备启动. 现代的网卡,一般都内嵌支持PXE的ROM芯片. ...

  2. vb编程中的选择结构语句的写法

    1996年,Bohra和Jacopin提出了结构化算法的3中种基本结构:顺序结构.选择结构和循环结构 目前已经得到证明,无论多么复杂的程序,都是由上面的3种基本结构中的一种或者多种的组合构成 在此笔者 ...

  3. iOS - UITableView reloadData滚动到顶部无效问题解决

    //tableView:动态cell的高度不固定,滑动不到最顶部 //if (self.sensorDate.count > 0) { // [self.tableView scrollToRo ...

  4. python将字符串类型改成日期类型

    将字符串类型的'2019-03-14'改成date类型,如下: import datetime b = datetime.date(*map(int,'2019-03-14'.split('-'))) ...

  5. Codeforces Round #496 (Div. 3)

    一如既往地四题...好久没切了 有点犯困了明显脑子感觉不够灵活. 为了熟练度还是用java写的,,,导致观赏性很差...我好不容易拉了个队友一起切结果过掉a就tm挂机了!!! A题竟然卡了,,,用了十 ...

  6. UCloud 的安全秘钥 (计蒜客初赛第五场)(待解决)

    20.7% 1200ms 262144K 每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作.作为一家安全可信的云计算平台,秘钥的安全性至关重要.因此,UCloud 每年 ...

  7. nginx_ssl安装

    Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,安装顺序为我写的顺序: c.1 SSL功能需要openssl库,下载地址:http://www.openssl. ...

  8. perl 递归删除目录和目录中的文件

    #!/usr/bin/perl use autodie; use utf8; use Encode qw(decode encode); sub del_dir{ my $path = shift @ ...

  9. css之高度塌陷及其解决方法

    浅谈 清除浮动 的多种方式(clearfix) 1.什么是浮动 ? 是否脱离文档流? 1.普通流定位 static(默认方式) 普通流定位,又称为文档流定位,是页面元素的默认定位方式 页面中的块级元素 ...

  10. Win10上使用VS2015编译Caffe2

    Caffe2的官网:https://caffe2.ai/ 1.下载.安装及相关准备 在Caffe2的官网点击"Get Started",即进入安装说明页面.官方还未提供编译好的bi ...