Linux 实用shell脚本
1.查看有多少远程的 IP 在连接本机
#!/bin/bash #!/bin/bash # 查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计) # 使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有, # -t仅显示 tcp 连接的信息,‐n 数字格式显示 # Local Address(第四列是本机的 IP 和端口信息) # Foreign Address(第五列是远程主机的 IP 和端口信息) # 使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息 # sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数 netstat -atn | awk '{print $5}' | awk '{print $1}' | sort -nr | uniq -c
2.脚本 杀掉 tomcat 进程并重新启动
#!/bin/bash #kill tomcat pid pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v "grep"|awk '{print $2}'` #找到tomcat的PID号 echo "tomcat Id list :$pidlist" //显示pid kill -9 $pidlist #杀掉改进程 echo "KILL $pidlist:" //提示进程以及被杀掉 echo "service stop success" echo "start tomcat" cd /opt/apache-tomcat-7.0.75 pwd rm -rf work/* cd bin ./startup.sh #;tail -f ../logs/catalina.out
3.备份 MySQL 表数据
#!/bin/sh source /etc/profile dbName=mysql tableName=db echo [`date +'%Y-%m-%d %H:%M:%S'`]' start loading data...' mysql -uroot -proot -P3306 ${dbName} -e "LOAD DATA LOCAL INFILE '# /home/wenmin/wenxing.txt' INTO TABLE ${tableName} FIELDS TERMINATED BY ';'" echo [`date +'%Y-%m-%d %H:%M:%S'`]' end loading data...' exit EOF
4.使用死循环实时显示 eth0 网卡发送的数据包流量
#!/bin/bash # 使用死循环实时显示 eth0 网卡发送的数据包流量 while : do echo '本地网卡 ens33 流量信息如下:' ifconfig ens33 | grep "RX pack" | awk '{print $5}' ifconfig ens33 | grep "TX pack" | awk '{print $5}' sleep 1 done
5.编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机
#!/bin/bash # 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 # 状态(for 版本) for i in {1..254} do # 每隔0.3秒ping一次,一共ping2次,并以1毫秒为单位设置ping的超时时间 ping -c 2 -i 0.3 -W 1 192.168.1.$i &>/dev/null if [ $? -eq 0 ];then echo "192.168.1.$i is up" else echo "192.168.1.$i is down" fi done
6.编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。
#!/bin/bash # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户 # 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默 # 认的 123456 作为默认密码。 read -p "请输入用户名:" user #使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2 #没有输入用户名脚本退出后,使用$?查看的返回码为 2 if [ -z $user ]; then echo " 您不需要输入账户名" exit 2 fi #使用 stty ‐echo 关闭 shell 的回显功能 #使用 stty echo 打开 shell 的回显功能 stty -echo read -p "请输入密码:" pass stty echo pass=${pass:-123456} useradd "$user" echo "$pass" | passwd --stdin "$user"
7.脚本 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
#!/bin/bash # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 # vim /root/logbak.sh # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 # 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面 tar -czf log-`date +%Y%m%d`.tar.gz /var/log # crontab -e #编写计划任务,执行备份脚本 00 03 * * 5 /home/wenmin/datas/logbak.sh
8.通过位置变量创建 Linux 系统账户及密码
#!/bin/bash # 通过位置变量创建Linux 系统账户及密码 # $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$1" echo "$2" | passwd --stdin "$1"
9.一键部署 LNMP(RPM 包版本)
#!/bin/bash # 一键部署 LNMP(RPM 包版本) # 使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败 # 本脚本使用于 centos7.2 或 RHEL7.2 yum -y install httpd yum -y install mariadb mariadb-devel mariadb-server yum -y install php php-mysql systemctl start httpd mariadb systemctl enable httpd mariadb
分类:
Linux云计算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2020-04-28 docker 私有仓库搭建