工作脚本积累

1.自动挂载磁盘
#!/bin/bash
#创建需要挂载磁盘的目录
mkdir /data
#创建磁盘分区
echo -e "n\np\n1\n\n\nw" | fdisk /dev/sdb
#格式化磁盘分区
mkfs.xfs  /dev/sdb1
#设置开机自动挂载磁盘
uuid=$(blkid | grep '/dev/sdb1' | awk -F 'UUID="' '{print $2}' | awk -F '"' '{print $1}')
echo "UUID=$uuid /data                   xfs     defaults        0 0" >>/etc/fstab
#挂载磁盘
mount -a
#验证磁盘是否挂载成功
lsblk |grep sdb1
2.更新jar包,未运行jar包
#!/bin/bash
date=$(date '+%m%d')
read -p "请输入部署目录(绝对路径): `echo $'\n> '`" dir
read -p "请输入上传jar包路径(绝对路径):`echo $'\n> '`" updir

while true; do

  read -p "请输入更新jar包:`echo $'\n> '`" jar
    if [ -z "$jar" ]; then
	   echo "未输入正确的jar包,更新结束"
	   break
	fi
	
  jar=${jar%.jar}
  jar=$jar.jar
  mv $dir/$jar $dir/$jar.bak$date
  mv $updir/$jar $dir/
  chmod +x $dir/$jar
  chown root:root $dir/$jar
done
3.更新用户密码
!/bin/bash
read -p "请输入需要更改密码的用户: `echo $'\n> '`" user

date=$(date '+%m月%d日')

get_device_ip() {
    local ip
    ip=$(ip route get 1 | awk '{print $NF; exit}')
    echo "$ip"
}

# 调用函数获取设备 IP
device_ip=$(get_device_ip)

generate_random_char() {
    local charset="$1"
    local length=${#charset}
    local random_index=$((RANDOM % length))
    echo "${charset:random_index:1}"
}

# 字符集合
uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase="abcdefghijklmnopqrstuvwxyz"
numbers="0123456789"
special_chars="@#$%^&_+~"

# 生成随机字符串
random_string=""
for ((i=0; i<3; i++)); do
    random_string+=$(generate_random_char "$uppercase")
    random_string+=$(generate_random_char "$lowercase")
    random_string+=$(generate_random_char "$numbers")
    random_string+=$(generate_random_char "$special_chars")
done

echo "$date"
echo "$date设备$device_ip用户$user更改密码为:$random_string" >> 1.txt
sleep 1
echo $random_string |passwd --stdin $user
4.使用LVM方式自动挂载磁盘
#!/bin/bash

# 脚本作者、测试信息和自定义备注
SH_NAME="zaj"
SH_VERSION="1.0.0"
SH_TIME="2024-02-08"
CUSTOM_REMARK="此脚本用于创建LVM并格式化逻辑卷,请谨慎操作。需要root用户组权限。"

# 显示脚本作者、版本信息、测试运行时间、已验证操作系统和自定义备注信息
echo "-----------------------------------------------"
echo "脚本作者: $SCRIPT_AUTHOR"
echo "脚本版本: $SCRIPT_VERSION"
echo "测试运行时间: $TEST_RUN_TIME"
echo "警告说明: $CUSTOM_REMARK"
echo "-----------------------------------------------"

# 检查当前用户是否为root用户
if [ "$EUID" -ne 0 ]; then
  echo "警告:您必须以root用户身份运行此脚本。"
  echo "注意:非root用户执行可能会导致系统不稳定或数据丢失。"
  echo "请确认是否继续以root用户身份运行此脚本?"
  read -p "请输入 'y' 确认或任何其他键取消:" input
  if [ "$input" == "y" ]; then
    echo "正在切换至root用户..."
    sudo -i
    echo "现在您是root用户,可以继续运行脚本。"
  else
    echo "操作已取消。"
    exit 1
  fi
else
  echo "检测到您是以root用户身份运行此脚本。"
fi

# 检查当前用户权限
if [ "$EUID" -ne 0 ]; then
  echo "警告:您必须以root用户身份运行此脚本。"
  echo "注意:非root用户执行可能会导致系统不稳定或数据丢失。"
  exit 1
fi

# 默认参数
disk_name="/dev/sdb"
vg_name="vg"
lv_name="lv"
mount_point="/data"
file_system_type="xfs"

# 检查磁盘是否存在
if ! lsblk -nb "$disk_name" &> /dev/null; then
    echo "错误:指定的磁盘不存在。"
    exit 1
fi

# 检查卷组名称是否唯一
if vgdisplay "$vg_name" &> /dev/null; then
  echo "错误:卷组 '$vg_name' 已存在。"
  exit 1
fi

# 创建物理卷
pvcreate "$disk_name"

# 创建卷组
vgcreate "$vg_name" "$disk_name"

# 创建逻辑卷
lvcreate -l 100%FREE -n "$lv_name" "$vg_name"

# 格式化逻辑卷
mkfs."$file_system_type" /dev/"$vg_name/$lv_name"

# 创建挂载点
mkdir -p "$mount_point"

# 挂载逻辑卷
mount /dev/"$vg_name/$lv_name" "$mount_point"

# 持久化挂载
echo "/dev/$vg_name/$lv_name $mount_point $file_system_type defaults 0 2" >> /etc/fstab

# 输出日志
exec >> "$(basename "${BASH_SOURCE[0]}").log"
exec 2>&1

echo "操作完成。"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值