首页 > 系统相关 >Linux 实用shell脚本

Linux 实用shell脚本

时间:2023-04-28 14:48:02浏览次数:45  
标签:脚本 bin shell tomcat 备份 echo 实用 Linux bash

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

标签:脚本,bin,shell,tomcat,备份,echo,实用,Linux,bash
From: https://www.cnblogs.com/yds941268778/p/17362163.html

相关文章

  • 解决 VMware 虚拟机 Linux /dev/mapper/ubuntu--vg-ubuntu--lv 磁盘空间不足的问题
    之前在VMware安装UbuntuServer的时候磁盘分区选择了LVM,所以系统根目录默认占用磁盘大小只有4G,在安装软件时发现磁盘空间4G已经无法满足,所以需要利用LVM对磁盘进行扩容使用Docker拉取MySQL镜像时发现磁盘空间不够:nospaceleftondeviceroot@ubuntu:~#......
  • Linux shell script read file line by line All In One
    LinuxshellscriptreadfilelinebylineAllInOneLinuxshell脚本逐行读取文件Ijustwanttoreplacethegrepcommand,andfilterouttherealIPaddress192.168.18.195withnativeshellsyntax.#!/usr/bin/envbashIPs=$(ifconfig|grep-oE'192\.168......
  • Linux安装Fastdfs
    前言:还是和以前一样,linux安装软件的目录都是data目录 1.进入data目录,创建libfastcommon目录并进入该目录cd/datamkdirlibfastcommoncdlibfastcommon 2.yum安装一下unzipyuminstallzipunzip-y 3.上传"libfastcommon_v1.40.zip"文件到当前目录(/data/li......
  • Linux基础17 运维核心职责与工作内容, 服务器介绍, 硬件介绍, 系统介绍, 机房介绍
    运维的核心职责1.数据不丢失。 2.业务7*24小时运行(不宕机) 3.提升用户体验度(性能的优化)2.运维的平时工作内容 1.日常服务器的维护,紧急故障的处理。 2.代码上线,gitlab+Jenkins。shell脚本。 3.项目:备份、迁移、升级。rsync 4.日常服务器监控,zabbix 5.梳理总结文档。画图。 6.领......
  • Ubuntu (Linux) 上查看 HEIC 格式的图片 / 显示缩略图
    Ubuntu20.04上查看HEIC格式的图片,仅需要安装一个heif-gdk-pixbuf的package,然后就可以使用ImageViewer查看了.如果还需要在文件管理器中显示缩略图,那么还需要安装其它2个包(亲测OK):sudoaptupdatesudoaptinstallheif-gdk-pixbufsudoaptinstallheif-thumbnailer......
  • 使用 ChatGPT ,通过自然语言编写 eBPF 程序和追踪 Linux 系统
    eBPF是一项革命性的技术,起源于Linux内核,可以在操作系统的内核中运行沙盒程序。它被用来安全和有效地扩展内核的功能,而不需要改变内核的源代码或加载内核模块。今天,eBPF被广泛用于各类场景:在现代数据中心和云原生环境中,可以提供高性能的网络包处理和负载均衡;以非常低的资源开销,做......
  • VMware Workstation 配置 Linux虚拟机网卡
    目录1.配置VMwareworkstation网卡(1)查看当前电脑上的虚拟网卡(2)虚拟机的三种网卡模式(3)配置VMware网卡模式2.配置虚拟机Linuxens33网卡(1)打开linux终端(2)进入ens33网卡配置文件(3)查看VMware虚拟网卡配置信息(4)修改ens33配置文件(5)检测是否配置成功1.配置VMwareworkstation网卡......
  • Linux安装RabbitMQ
    前言:还是和以前一样,linux安装软件的目录都是data目录 1.这次稍微不一样,不过还是进入data目录,创建RabbitMq目录并进入该目录cd/datamkdirrabbitMqcdrabbitMq 2.上传"erlang-21.1-1.el7.x86_64.rpm"文件和 "rabbitmq-server-3.7.7-1.el7.noarch.rpm"文件到当前......
  • 全网最全Linux 运行jar包的几种方式
    全网最全Linux运行jar包的几种方式原文链接:https://blog.csdn.net/zhangmingyue1226/article/details/127831360一、Linux运行jar包的几种方式方式一:java-jarxxx.jar最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出。方式......
  • Linux common clock framework(3)_实现逻辑分析
    1.前言前面两篇clockframework的分析文章,分别从clockconsumer和clockprovider的角度,介绍了Linuxkernel怎么管理系统的clock资源,以及devicedriver怎么使用clock资源。本文将深入到clockframework的内部,分析相关的实现逻辑。注:本文使用的kernel版本为linux-3.10.29。虽然最......