Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Shell脚本实用技巧,轻松实现自动化运维

Shell脚本实用技巧,轻松实现自动化运维

作者头像
很酷的站长
发布于 2023-09-01 11:03:18
发布于 2023-09-01 11:03:18
50501
代码可运行
举报
运行总次数:1
代码可运行
一、使用Shell脚本实现自动化备份

在日常的运维工作中,备份是一个非常重要的环节。而使用Shell脚本可以让备份操作变得更加便捷。

下面是一个针对MySQL数据库备份的Shell脚本实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 备份存放路径
backup_path=/backup/mysql_backup
# 当前系统日期
date=`date +%Y%m%d`
# MySQL账号密码
mysql_user=root
mysql_password=123456
# 数据库列表
db_list=(test db1 db2)
# 备份过程(循环备份每个数据库)
for db_name in ${db_list[*]}
do
    # 备份文件名
    file_name=${backup_path}/${db_name}-${date}.sql
    # 备份指定数据库(-R表示使用REPEATABLE READ事务隔离级别)
    mysqldump -u${mysql_user} -p${mysql_password} -R ${db_name} > ${file_name}
done

这个脚本会备份指定的数据库,并将备份文件以“数据库名-日期”的格式存放到指定的路径下。

二、使用Shell脚本实现定时任务

使用Shell脚本可以很方便地实现定时任务,比如定期清理日志、定时执行备份等操作。

下面是一个使用Cron定时执行备份脚本的实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 每天凌晨2点执行备份
0 2 * * * /bin/bash /backup/mysql_backup.sh

在上面的例子中,我们使用Cron实现了每天凌晨2点执行备份脚本的定时任务。

三、使用Shell脚本实现远程登录服务器

在管理多台服务器时,通常需要频繁地登录到远程服务器进行操作,使用Shell脚本可以让这个过程更加简单快捷。

下面是一个登陆远程服务器并执行命令的Shell脚本实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 远程服务器IP
server_ip=192.168.1.100
# 远程服务器用户名
server_user=root
# 远程服务器密码
server_password=123456
# 要执行的命令
command="ls -l /home"
# 登陆服务器并执行命令
sshpass -p ${server_password} ssh ${server_user}@${server_ip} "${command}"

这个脚本会使用sshpass命令登陆到远程服务器,并执行指定的命令。

四、使用Shell脚本自动化部署应用

使用Shell脚本可以很方便地实现应用的自动化部署。下面是一个使用Shell脚本自动化部署Java应用的实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 应用部署路径
deploy_path=/opt/tomcat/webapps
# 应用备份路径
backup_path=/backup/app_backup
# 应用名称
app_name=myapp.war
# 当前系统日期
date=`date +%Y%m%d`
# 备份应用
mv ${deploy_path}/${app_name} ${backup_path}/${app_name}-${date}
# 拷贝新应用
cp ${app_name} ${deploy_path}
# 重启Tomcat
${deploy_path}/../bin/catalina.sh stop
${deploy_path}/../bin/catalina.sh start

这个脚本会备份应用、拷贝新应用、重启Tomcat来完成Java应用的自动化部署。

五、使用Shell脚本实现快速部署开发环境

在开发环境中,我们常常需要安装一些软件、配置一些环境变量。使用Shell脚本可以让这个过程变得更加顺畅。

下面是一个使用Shell脚本快速部署Java开发环境的实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 安装Java
yum install -y java-1.8.0-openjdk-devel
# 配置环境变量
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
source /etc/profile

这个脚本会安装Java,并配置JAVA_HOME和PATH这两个环境变量。

六、使用Shell脚本实现快速检查服务器性能

使用Shell脚本可以很方便地快速检查服务器性能,比如CPU占用率、内存占用率等指标。

下面是一个使用Shell脚本检查CPU占用率的实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 获取1秒内CPU的总使用率
cpu_usage=`top -b -n 1 | grep "Cpu(s)" | awk '{print $2+$4}' | cut -d. -f1`
echo "CPU Usage: ${cpu_usage}%"

这个脚本会获取1秒内CPU的总使用率,并输出到控制台。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Linux基础知识】Linux自动化运维:编写Shell脚本实现自动化任务
在Linux系统管理中,日常运维任务往往繁琐且重复。通过编写Shell脚本实现自动化任务,不仅能提高工作效率,还能减少人为错误。本文将全面介绍如何利用Shell脚本进行Linux自动化运维。
鸽芷咕
2025/05/31
1290
实用Shell脚本
假设服务器为lnmp环境,近期访问经常出现502现象,且502错误在重启php-fpm服务后消失,因此编写监控脚本,一旦出现502,则自动重启php-
花落花相惜
2021/11/26
1.3K0
自动化运维:编写基本的自动化脚本
在现代IT运维中,自动化脚本的使用已经成为提高效率和减少人为错误的关键手段。本文将详细介绍如何编写基本的自动化脚本,帮助运维人员更好地管理和维护系统。我们将以Shell脚本和Python脚本为例,展示如何实现常见的运维任务。
Echo_Wish
2024/09/29
6190
自动化运维:编写基本的自动化脚本
Linux Shell脚本案例
1.Dos攻击防范(自动屏蔽攻击IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptabl
用户7741497
2022/03/01
1.4K0
用 CodyBuddy 帮我写自动化运维脚本
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴”。
悟空聊架构
2025/05/07
2050
MySQL运维常用Shell脚本汇集
描述:本文章是为了记录在日常MySQL运维中对数据库进行操作处理的Shell脚本编写,做一个备份说明;
全栈工程师修炼指南
2022/09/29
1.7K0
MySQL运维常用Shell脚本汇集
【自动化运维】从0到1 CICD自动化部署落地分享
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
用户9913368
2022/08/13
4.4K0
【自动化运维】从0到1 CICD自动化部署落地分享
Linux Shell脚本经典案例
10.并发从数台机器中获取 hostname,并记录返回信息花 费的时长,重定向到一个文件 hostname.txt 中,在全部 完成后输出花费时长最短的那台机器的 CPU 信息。
用户7741497
2022/03/24
1K0
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.5K0
101个shell脚本
Linux Shell脚本之GitLab远程备份
注:Gitlab是一个Git服务程序,有Web图形界面和一系列管理工具,具体详细介绍可以Google it。
知忆
2021/06/09
1.1K0
定期备份数据库:基于 Shell 脚本的自动化方案
数据库备份这件事,说实话,我一直没怎么上心。平时服务器跑得好好的,谁会想着备份呢?直到某天真出问题了,才意识到自己平时有多“懒”。
苏琢玉
2025/03/11
2070
定期备份数据库:基于 Shell 脚本的自动化方案
非常实用的常用Linux运维Shell脚本
废柴阿尤
2023/12/18
4320
9个常用的Shell脚本
1、Dos 攻击防范(自动屏蔽攻击 IP)#!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)LOG_FILE=/usr/local/nginx/logs/demo2.access.logABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')for IP in $ABNORMAL_IP; do    if [ $(iptables -vnL
星哥玩云
2022/06/25
2060
自动化脚本:提升运维效率的秘诀
当我们谈论服务器管理时,自动化脚本就像是一位无声的英雄,它默默在幕后保持着我们的服务器运行顺畅,确保数据安全,同时还能有效防范网络攻击。
南山竹
2024/06/21
2290
自动化脚本:提升运维效率的秘诀
常用的shell脚本
天天浏览博客的好处就是可以学习新知识,且可以温习旧知识。 以下内容摘自公众号----一口Linux,在此记录一下。
cultureSun
2023/05/18
5080
让ChatGPT帮我写shell脚本, 结局很感人
一开始我没想那么多, 就把当时的想法表达出来. 所以问题表述没那么详细, 建议描述问题时尽量详细点. 理论上来说, 描述的越详细, 提供的代码就越规范, 正确率高
时间静止不是简史
2023/03/31
1.1K0
让ChatGPT帮我写shell脚本, 结局很感人
IDEA Spring Boot 自动化构建+部署
3.在Add Host对话框中设置Host List、Username、Password和Tag等参数,完成后单击 Add。
IT大咖说
2021/02/24
9560
IDEA Spring Boot 自动化构建+部署
shigen的一些shell脚本分享
希望以上shigen积累和用到的脚本能给大家带来帮助,当然只是一部分,还有其他的很多效率脚本来不及整理和分享。正如我的一个运维伙伴所说:具体的脚本还得看业务情况。
shigen
2023/11/07
2690
shigen的一些shell脚本分享
手把手自动化MySQL数据库备份
在本文中,我们将分享如何为您的数据库创建自动的远程数据库备份。 第1步 通过SSH登录到数据库服务器。您也可以从终端上进行操作。 ssh you-ssh-user@your-server-ip 第2步 在当前用户的主目录中创建一个Shell脚本文件: touch ~/mysql-backup.sh 使用vim打开Shell脚本: vim ~/mysql-backup.sh 将以下内容复制并粘贴到 〜/ mysql-backup.sh 中: #!/bin/bash export PATH=/bin:/usr
Lemon黄
2020/07/02
4450
Jenkins部署码云SpringBoot项目到远程服务器
这里需要在 系统管理->系统设置->Publish over SSH配置远程部署的服务器,如图:
dalaoyang
2018/12/10
4.8K0
Jenkins部署码云SpringBoot项目到远程服务器
相关推荐
【Linux基础知识】Linux自动化运维:编写Shell脚本实现自动化任务
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验