博客
关于我
站长常用Shell脚本整理分享11-20
阅读量:205 次
发布时间:2019-02-28

本文共 3323 字,大约阅读时间需要 11 分钟。

11、编写 Nginx 启动脚本

#!/bin/bash# 编写 Nginx 启动脚本# 本脚本编写完成后,放置在 /etc/init.d/ 目录下,就可以被 Linux 系统自动识别到该脚本# 如果本脚本名为 /etc/init.d/nginx,则 service nginx start 就可以启动该服务# service nginx stop 就可以关闭服务# service nginx restart 可以重启服务# service nginx status 可以查看服务状态program=/usr/local/nginx/sbin/nginxpid=/usr/local/nginx/logs/nginx.pidstart() {    if [ -f $pid ]; then        echo "Nginx 服务已经处于开启状态"    else        $program}stop() {    if [ -f $pid ]; then        echo "关闭服务 ok"        $program -s stop    fi}status() {    if [ -f $pid ]; then        echo "服务正在运行..."    else        echo "服务已经关闭"    fi}case $1 instart)    start;;stop)    stop;;restart)    stop    sleep 1    start;;status)    status;;*)    echo "你输入的语法格式错误"esac

12、自动对磁盘分区、格式化、挂载

#!/bin/bash# 自动对磁盘分区、格式化、挂载# 对虚拟机的 vdb 磁盘进行分区格式化,使用 fdisk# n(新建分区),p(创建主分区),1(分区编号为 1),两个空白行(两个回车,相当于将整个磁盘分一个区)# 注意:1 后面的两个回车(空白行)是必须的!fdisk dev vdb << EOFnp 1wqEOF# 格式化刚刚创建好的分区mkfs.xfs vdb1# 创建挂载点目录if [ -e data ]; then    exitfimkdir data# 自动挂载刚刚创建的分区,并设置开机自动挂载该分区echo 'xfs defaults 1 2' > /etc/fstabmount -a

13、自动优化 Linux 内核参数

#!/bin/bash# 自动优化 Linux 内核参数# 脚本针对 RHEL7cat > /usr/lib/sysctl.d/00-system.conf << EOFkernel.sysrqkernel.shudownkernel.sched_cfskernel.panic_on_oopsEOF

14、切割 Nginx 日志文件(防止单个文件过大,后期处理很困难)

#!/bin/bash# mkdir  /data/scriptsmkdir -p /data/scripts# vim /data/scripts/nginx_log.sh#!/bin/bash# 切割 Nginx 日志文件(防止单个文件过大,后期处理很困难)logs_path="/usr/local/nginx/logs/"mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").logkill -USR1 `cat /usr/local/nginx/logs/nginx.pid`chmod +x /data/scripts/nginx_log.sh# crontab -e# 每天执行一次脚本0 1 * * * /data/scripts/nginx_log.sh

15、检测 MySQL 数据库连接数量

#!/bin/bash# 检测 MySQL 数据库连接数量# 本脚本每 2 秒检测一次 MySQL 并发连接数,可以将本脚本设置为开机启动脚本,或在特定时间段执行# 以满足对 MySQL 数据库的监控需求,查看 MySQL 连接是否正常log_file=/var/log/mysql_count.loguser=rootpasswd=123456while : do    sleep 2    count=`mysqladmin -u "$user" -p "$passwd" status | awk '{print $4}'`    echo "`date +%Y-%m-%d` 并发连接数为:$count" >> $log_file    done

16、根据 md5 校验码,检测文件是否被修改

#!/bin/bash# 根据 md5 校验码,检测文件是否被修改# 本示例脚本检测的是 /etc 目录下所有的 conf 结尾的文件# 根据实际情况,您可以修改为其他目录或文件# 本脚本在目标数据没有被修改时执行一次,当怀疑数据被人篡改,再执行一次# 将两次执行的结果做对比,MD5 码发生改变的文件,就是被人篡改的文件for i in $(ls /etc/*.conf) do    md5sum "$i" >> /var/log/conf_file.logdone

17、检测 MySQL 服务状态

#!/bin/bash# 检测 MySQL 服务是否存活# host 为你需要检测的 MySQL 主机的 IP 地址,user 为 MySQL 账户名,passwd 为密码# 这些信息需要根据实际情况修改后方可使用host=192.168.51.198user=rootpasswd=123456mysqladmin -h "$host" -u "$user" -p "$passwd" ping > /dev/nullif [ $? -eq 0 ]; then    echo "MySQL is UP"else    echo "MySQL is down"fi

18、备份 MySQL 的 shell 脚本(mysqldump 版本)

#!/bin/bash# 备份 MySQL 的 shell 脚本(mysqldump 版本)# 定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)# dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mysql 数据库)user=rootpasswd=123456dbname=mysqlddate=$(date +%Y%m%d)# 测试备份目录是否存在,不存在则自动创建该目录[ ! -d /mysqlbackup ] && mkdir /mysqlbackup# 使用 mysqldump 命令备份数据库mysqldump -u "$user" -p "$passwd" "$dbname" > /mysqlbackup/"$dbname"-${date}.sql

19、将文件中所有的小写字母转换为大写字母

#!/bin/bash# 将文件中所有的小写字母转换为大写字母# $1 是位置参数,是你需要转换大小写字母的文件名称# 执行脚本,给定一个文件名作为参数,脚本就会将该文件中所有的小写字母转换为大写字母tr "[a-z]" "[A-Z]" < $1

20、非交互自动生成 SSH 密钥文件

#!/bin/bash# 非交互自动生成 SSH 密钥文件# -t 指定 SSH 密钥的算法为 RSA 算法;-N 设置密钥的密码为空;-f 指定生成的密钥文件rm -rf ~/.ssh/{known_hosts,id_rsa*}ssh-keygen -t RSA -N '' -f ~/.ssh/id_rsa

转载地址:http://eazp.baihongyu.com/

你可能感兴趣的文章
NodeJS 的环境变量: 开发环境vs生产环境
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
nodejs下的express安装
查看>>
nodejs与javascript中的aes加密
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
nodejs中express的使用
查看>>
Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
查看>>
Nodejs中的fs模块的使用
查看>>
NodeJS使用淘宝npm镜像站的各种姿势
查看>>
NodeJs入门知识
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>
NodeJs单元测试之 API性能测试
查看>>
nodejs图片转换字节保存
查看>>