Shell脚本(Shell script)

通过位置变量创建 Linux 系统账户及密码

#!/bin/bash
useradd "$1"
echo "$2" | passwd --stdin "$1"

# ./user.sh 用户名 密码

每周 5 使用 tar 命令备份/var/log 下的所有日志文件

#vim /root/logbak.sh
#编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖#注意date 命令需要使用反引号括起来
tar -czf log-`date +%Y%m%d`.tar.gz /var/log

一键部署 LNMP(RPM 包版本)

#!/bin/bash
#使用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

实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给 root 管理员

#!/bin/bash
#提取根分区剩余空间
disk_size=$(df / |awk '/\//{print $4}')
#提取内存剩余空间
mem_size=$(free |awk '/Mem/{print $4}')while :
do
#注意内存和磁盘提取的空间大小都是以Kb为单位
if [ $disk_size ‐le 512000 ‐a $mem_size ‐le 1024000 ];then     mail ‐s Warning root <<EOF
Insufficient resources,资源不足EOF
fidone

生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, 猜小了或猜大了,直至用户猜对脚本结束

#!/bin/bash
#RANDOM 为系统自带的系统变量,值为 0‐32767 的随机数#使用取余算法将随机数变为 1‐100 的随机数num=$[RANDOM%100+1]

#使用read 提示用户猜数字
#使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),‐lt(小于),‐le(小于等于)
while :
do
     read ‐p "计算机生成了一个 1‐100 的随机数,你猜: " cai if    [ $cai ‐eq $num ];then
     echo    "恭喜,猜对了" exit
     elif [ $cai ‐gt $num ];then echo    "Oops,猜大了"
     else
     echo    "Oops,猜小了"
     fidone

检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员

*****使用字串对比#!/bin/bashif [ $UID ‐eq 0 ];then   yum ‐y install vsftpdelse   echo “您不是管理员,没有权限安装软件”fi*****使用 UID 数字对比

#!/bin/bashif [ $UID ‐eq 0 ];then    yum ‐y install vsftpdelse    echo “您不是管理员,没有权限安装软件”fi

提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 作为默认密码。

#!/bin/bash
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"
————————

< strong > create Linux system account and password through location variables < / strong >

#!/bin/bash
useradd "$1"
echo "$2" | passwd --stdin "$1"

#. / user.sh username and password

< strong > every week < / strong > < strong > 5 use the tar command to back up all log files under / var / log < / strong >

#vim /root/logbak.sh
#编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖#注意date 命令需要使用反引号括起来
tar -czf log-`date +%Y%m%d`.tar.gz /var/log

< strong > one click deployment < / strong > < strong > LNMP (RPM package version) < / strong >

#!/bin/bash
#使用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

< strong > monitor the local memory and hard disk remaining space in real time. When the remaining memory is less than < / strong > < strong > 500m < / strong > < strong > < strong >, and the remaining space in the root partition is less than < / strong > < strong > 1000m < / strong > < strong > < strong >, send an alarm email to < / strong > < strong > root < / strong > < strong > administrator < / strong >

#!/bin/bash
#提取根分区剩余空间
disk_size=$(df / |awk '/\//{print $4}')
#提取内存剩余空间
mem_size=$(free |awk '/Mem/{print $4}')while :
do
#注意内存和磁盘提取的空间大小都是以Kb为单位
if [ $disk_size ‐le 512000 ‐a $mem_size ‐le 1024000 ];then     mail ‐s Warning root <<EOF
Insufficient resources,资源不足EOF
fidone

< strong > generate a random number within 100 and prompt the user to guess the number. According to the user’s input, prompt the user to guess correctly, guess small or guess large until the user guesses correctly and the script ends < / strong >

#!/bin/bash
#RANDOM 为系统自带的系统变量,值为 0‐32767 的随机数#使用取余算法将随机数变为 1‐100 的随机数num=$[RANDOM%100+1]

#使用read 提示用户猜数字
#使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),‐lt(小于),‐le(小于等于)
while :
do
     read ‐p "计算机生成了一个 1‐100 的随机数,你猜: " cai if    [ $cai ‐eq $num ];then
     echo    "恭喜,猜对了" exit
     elif [ $cai ‐gt $num ];then echo    "Oops,猜大了"
     else
     echo    "Oops,猜小了"
     fidone

< strong > check whether the current user of this machine is a super administrator. If it is an administrator, use < / strong > < strong > Yum < / strong > < strong > to install vsftpd < / strong > < strong >. If not, you will be prompted that you are not an administrator < / strong >

*****Use string comparison #/ bin/bashif [ $UID ‐eq 0 ]; then     yum ‐y install vsftpdelse     Echo “you are not an administrator and do not have permission to install software” fi ***** use uid digital comparison

#!/ bin/bashif [ $UID ‐eq 0 ]; then     yum ‐y install vsftpdelse     Echo “you are not an administrator and do not have permission to install software” fi

< strong > prompt the user to enter the user name and password, and the script will automatically create the corresponding account and configure the password. If the user does not enter the account name, the user will be prompted that the account name must be entered and exit the script; If the user does not enter a password, the default 123456 will be used as the default password

#!/bin/bash
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"