当前位置: 首页 > news >正文

第1-第20个高级shell程序

高级shell脚本

1.使用Shell脚本批量修改文件名

#!/bin/bash 
for fi lein$(ls*.txt)
do
mv $file${file%%.*}.md
done

2.统计一个文本文件中某个单词出现的次数

#!/bin/bashword="example"
count=0
whilereadline
do
forwin$line
do
if["$w"="$word"]
then
count=$((count+1))
fi
done
done<file.txt
echo"$wordappears$counttimes"

3.使用Shell脚本自动备份MySQL数据库

#!/bin/bashuser="username"
password="password"
host="localhost"
db_name="database"
backup_path="/path/to/backup"
date=$(date+"%Y-%m-%d")
mysqldump--user=$user--password=$password--host=$host$db_name>$backup_path/$db_name-$date.sql

4.使用Shell脚本实现文件压缩和解压

#!/bin/bash#压缩文件zip-rarchive.zipfolder/
#解压文件unziparchive.zip-ddestination_folder/

5.使用Shell脚本监控服务器CPU和内存使用情况

#!/bin/bashcpu_threshold=80
mem_threshold=80
whiletrue
do
cpu_usage=$(top-bn1|grep"Cpu(s)"|awk'{print$2}')
mem_usage=$(free|awk'/Mem/{print$3/$2*100}')
if[[$(echo"$cpu_usage>$cpu_threshold"|bc)-ne0]]
then
echo"CPUusageishigh:$cpu_usage"
fi
if[[$(echo"$mem_usage>$mem_threshold"|bc)-ne0]]
then
echo"Memoryusageishigh:$mem_usage"
fi
sleep5
done

6.使用Shell脚本实现FTP文件上传和下载

#!/bin/bash#FTP文件上传ftp-n<<EOF
openftp.example.com
userusernamepassword
putfile.txt
bye
EOF
#FTP文件下载ftp-n<<EOF
openftp.example.com
userusernamepassword
getfile.txt
bye
EOF

7.使用Shell脚本实现进程监控和重启

#!/bin/bashprocess_name="example"
whiletrue
do
ifpgrep$process_name>/dev/null
then
echo"$process_nameisrunning"
else
echo"$process_nameisnotrunning,restarting..."
/etc/init.d/$process_namerestart
fi
sleep10
done

8.使用Shell脚本实现定时任务

#!/bin/bash#每天凌晨1点执行任务01***/path/to/script.sh

9.使用Shell脚本实现日志分析

#!/bin/bashlog_file="/path/to/log/file"
whiletrue
do
tail-n0-f$log_file|whilereadline
do
ifecho"$line"|grep"error">/dev/null
then
echo"$line">>error.log
fi
done
sleep1
done

10.使用Shell脚本实现SSH登录自动化

#!/bin/bash#自动登录远程服务器并执行命令sshuser@remote_server'command'
#自动上传文件到远程服务器scpfile.txtuser@remote_server:/path/to/destination
#自动下载文件到本地scpuser@remote_server:/path/to/file.txt/path/to/destination

11.使用Shell脚本实现Git代码自动部署

#!/bin/bash#同步代码gitpull
#安装依赖npminstall
#构建项目npmrunbuild
#备份原有部署mv/path/to/deploy/path/to/deploy_backup
#将构建后的代码复制到部署目录cp-rdist/path/to/deploy
#重启服务systemctlrestartservice_name

12.使用Shell脚本实现邮件发送

#!/bin/bashto="recipient@example.com"
subject="Emailsubject"
body="Emailbody"
echo"$body"|mail-s"$subject""$to"

13.使用Shell脚本实现文件加密和解密

#!/bin/bash#加密文件opensslaes-256-cbc-salt-infile.txt-outfile.enc
#解密文件opensslaes-256-cbc-d-infile.enc-outfile.txt

14.使用Shell脚本实现网络监控和报警

#!/bin/bashhost="example.com"
whiletrue
do
if!ping-c1$host>/dev/null
then
echo"Hostisdown:$host"
sendmailrecipient@example.com<<EOF
Subject:Hostisdown
$hostisnotrespondingtopings.
EOF
fi
sleep10
done

15.使用Shell脚本实现密码生成器

#!/bin/bashlength=16
nums='0123456789'
lower='abcdefghijklmnopqrstuvwxyz'
upper='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
special='!@#$%^&*()_+-=[]{}|;:,.<>?'
characters="$nums$lower$upper$special"
password=$(echo$characters|fold-w1|shuf|head-c"$length")
echo"$password"

16.使用Shell脚本实现日志轮转

#!/bin/bash
log_file="/path/to/log/file"
max_size=10000000
backups=5
if[-s$log_file]
then
size=$(du-b$log_file|awk'{print$1}')
if[$size-gt$max_size]
then
for((i=$backups-1;i>=0;i--))
do
if[-f$log_file.$i]
then
mv$log_file.$i$log_file.$((i+1))
fi
done
mv$log_file$log_file.0
touch$log_file
fi
fi

17.使用Shell脚本实现进程限制

#!/bin/bashmax_processes=5
whiletrue
do
if[$(pgrep-cprocess_name)-lt$max_processes]
then
./process_name&
fi
done

18.使用Shell脚本实现远程命令执行

#!/bin/bash
ssh user@remote_server'command'

19.使用Shell脚本实现文件比较

#!/bin/bash
file1="/path/to/file1"
file2="/path/to/file2"
ifdiff$file1$file2>/dev/null
then
echo"File sareidentical"
else
echo"File saredifferent"
fi

20.使用Shell脚本实现用户管理

#!/bin/bash#添加新用户useraddnew_user
#删除用户
userdel old_user
#修改密码
passwd username
#切换用户
su username

相关文章:

第1-第20个高级shell程序

高级shell脚本 1.使用Shell脚本批量修改文件名 #!/bin/bash for fi lein$(ls*.txt) do mv $file${file%%.*}.md done2.统计一个文本文件中某个单词出现的次数 #!/bin/bashword"example" count0 whilereadline do forwin$line do if["$w""$word&qu…...

【致敬嵌入式攻城狮第2期活动预热征文】学习安排

文章目录「 致敬未来的攻城狮计划 」——学习计划前言学习计划&#x1f697;单片机理论实践&#x1f697;学业阅读计划「 致敬未来的攻城狮计划 」——学习计划 &#x1f680;&#x1f680;开启攻城狮的成长之旅&#xff01;这是我参与的由 CSDN博客专家 架构师李肯和 瑞萨MCU …...

035:cesium加载KML文件,显示图形

第035个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载KML文件, 显示图形。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共83行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https:/…...

随想录Day42--动态规划: 416. 分割等和子集(终于吃下01背包了)

今天只有1道题&#xff0c;属于动态规划的01背包问题的应用。首先理解一下动态规划的01背包问题。推荐一个视频&#xff0c;动态规划DP0-1背包&#xff0c;这是我认为讲得最为通透的。很多讲解动态背包问题的&#xff0c;一上来就画二维表格&#xff0c;遍历背包或者遍历容量&a…...

字节跳动软件测试岗,前两面过了,第三面被面试官吊打,结局我哭了

阎王易见&#xff0c;小鬼难缠。我一直相信这个世界上好人居多&#xff0c;但是也没想到自己也会在阴沟里翻船。我感觉自己被字节跳动的HR坑了。 在这里&#xff0c;我只想告诫大家&#xff0c;offer一定要拿到自己的手里才是真的&#xff0c;口头offer都是不牢靠的&#xff0…...

bitlocker 笔记

介绍 bitlocker是windows自带的磁盘加密工具&#xff0c;win10专业版是可以使用的&#xff0c;其他家庭版本可能没有这个功能。有点类似与wd security。 功能 加密磁盘&#xff0c;当磁盘物理丢失时&#xff0c;防止磁盘中的数据泄露。举个例子&#xff0c;移动硬盘被偷&…...

Linux 压缩与解压命令

一、常见的压缩文件扩展名 1、*.Z compress程序压缩的文件 2、*.gz gzip程序压缩的文件 3、.tar.gz tar程序打包的文件&#xff0c;其中经过gzip的压缩 4、.tar tar程序打包的数据&#xff0c;并没有压缩过 5、.bz2 bzip2程序压缩的文件 6、.tar.bz2 tar程序打包的文件&a…...

python global函数用法及常用的 global函数代码

Python中的 global函数是用于在程序中定义变量的函数&#xff0c;在我们实际的开发中&#xff0c;我们可能会用到 global函数来定义变量&#xff0c;但是我们在这里就不具体介绍它的用法了。 global函数定义变量的方法&#xff1a; global函数使用参数a来指定变量在程序中的地址…...

大数据学完好就业么

Python的普及与数据挖掘、人工智能和数值计算等领域的蓬勃发展相关&#xff0c;但同时也与普遍编程需求的增加有关。 Python应用领域广泛&#xff0c;意味着选择Python的同学在学成之后可选择的就业领域有很多&#xff0c;加上Python本身的优势&#xff0c;致使现在越来越多的…...

CASAtomic 原子操作详解

文章目录CAS&Atomic 原子操作详解什么是原子操作CAS相关原子操作类的使用AtomicIntegerAtomicIntegerArray更新引用类型原子更新字段类LongAdderCAS&Atomic 原子操作详解 什么是原子操作 Mysql事务中的原子性就是一个事务中执行的多条sql&#xff0c;要么同时成功&am…...

卷积神经网络(convolutional neural network, CNN)

卷积神经网络&#xff08;convolutional neural network, CNN&#xff09; 卷积神经网络&#xff08;convolutional neural network, CNN&#xff09;&#xff0c;是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络是指那些至少在网络的一层中使用卷积运算来替代…...

kube-apiserver启动流程源码分析

1. 概述 KubeAPIServer 主要是提供对 API Resource 的操作请求&#xff0c;为 kubernetes 中众多 API 注册路由信息&#xff0c;暴露 RESTful API 并且对外提供 kubernetes service&#xff0c;使集群中以及集群外的服务都可以通过 RESTful API 操作 kubernetes 中的资源。 2…...

Scala基础(二)

单例对象&#xff08;object&#xff09; Scala的类中无法定义静态成员&#xff0c;即无static关键字。如何像Java一样表达类的静态成员变量、成员方法与静态代码块&#xff1f; Scala解决方案&#xff1a;单例对象 使用“object”关键字声明&#xff0c;可包含变量、方法与…...

Python 生产者消费者模型是什么?

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注&#xff01; 作者| 慕课网精英讲师 朱广蔚 1. 简介 生产者和消费者问题是线程模型中的经典问题&#xff1a; 生产者和消费者共享同一个存储空间生产者往存储空间中添…...

手机银行评测系列:北京银行“京彩生活”7.0从用户视角出发,实现沉浸式体验重塑

易观&#xff1a;2023年3月28日&#xff0c;北京银行发布“京彩生活”APP 7.0版本&#xff0c;从旅程再造、特色金融、场景生态、平台联动、协同经营、体验管理和安全守护七大方面全面升级&#xff0c;从用户视角出发&#xff0c;重塑用户旅程&#xff0c;简化操作流程&#xf…...

ZJYC2023 浙江省大学生程序设计竞赛校内选拔赛部分题解 C J B L

ZJYC2023 浙江省大学生程序设计竞赛校内选拔赛部分题解 C J B L 难度分布&#xff1a; 签到&#xff1a;CJ Easy&#xff1a;BL Midium&#xff1a;IAGKFE Hard&#xff1a;DH 题解&#xff1a; 签到&#xff1a;CJ C - ^{-1} 参考代码&#xff1a; #include<bits/std…...

百科创建:7种有效的百科词条创建技巧

百科词条是互联网上最常见的知识信息资源之一&#xff0c;它们是人们查找信息的主要途径之一。创建一个高质量的百科词条并不是一件容易的事情&#xff0c;需要一些技巧和经验才能做到。下面是一些创建百科词条的技巧&#xff1a; 一、确保词条的独特性 在创建百科词条之前&…...

ThreeJS-dat.gui界面控制颜色、隐藏、位置(六)

下载组件dat.gui npm install dat.gui -S 引入组件 import * as dat from dat.gui //界面控制 代码&#xff1a; <template> <div id"three_div"> </div> </template> <script> import * as THREE from "three"; import {O…...

接口自动化测试,完整入门篇

目录 1. 什么是接口测试2. 基本流程3. 需求分析4. 用例设计5. 脚本开发6. 结果分析7. 完整脚本8. 参考资料1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及…...

利用ControlNet重新定义你的AI姿势

利用ControlNet重新定义你的AI姿势 前段时间给大家分享了如何利用colab实现AI绘画自由&#xff0c;现在Stable Diffusion WebUI Colab TW又更新了不少新功能。最重要的是可以通过谷歌硬盘的快捷方式导入模型&#xff0c;极大的节省了谷歌硬盘容量。 众所周知&#xff0c;谷歌…...

Alpamayo-R1-10B商业应用探索:车企研发提效与算法验证加速方案

Alpamayo-R1-10B商业应用探索&#xff1a;车企研发提效与算法验证加速方案 1. 项目概述 Alpamayo-R1-10B是NVIDIA推出的自动驾驶专用开源视觉-语言-动作(VLA)模型&#xff0c;作为新一代自动驾驶研发工具链的核心组件&#xff0c;正在改变车企的研发流程。这个100亿参数规模的…...

别再死记公式!一个Buck电路实例带你吃透‘小信号建模’到底在干什么

从Buck电路实战理解小信号建模&#xff1a;为什么工程师需要这个"数学翻译器"&#xff1f; 第一次接触小信号建模时&#xff0c;我和大多数电力电子初学者一样困惑——明明电路已经能用状态方程描述&#xff0c;为什么还要大费周章地推导那些看似复杂的传递函数&…...

轻量工具如何承载复杂项目?揭秘GanttProject的极简主义哲学

轻量工具如何承载复杂项目&#xff1f;揭秘GanttProject的极简主义哲学 【免费下载链接】ganttproject Official GanttProject repository 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 在项目管理领域&#xff0c;存在一个普遍的矛盾&#xff1a;专业工具…...

TranslucentTB 架构深度解析:Windows 任务栏透明化技术实现与工程化实践

TranslucentTB 架构深度解析&#xff1a;Windows 任务栏透明化技术实现与工程化实践 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tran…...

Ostrakon-VL处理网络协议:从数据包捕获文件可视化网络流量

Ostrakon-VL处理网络协议&#xff1a;从数据包捕获文件可视化网络流量 1. 网络流量分析的痛点与机遇 网络工程师每天都要面对海量的网络数据包&#xff0c;传统的分析工具虽然功能强大&#xff0c;但存在几个明显痛点&#xff1a; 数据量大&#xff1a;一个中等规模企业的日…...

Swift-All镜像推荐:免配置快速部署,新手也能轻松上手

Swift-All镜像推荐&#xff1a;免配置快速部署&#xff0c;新手也能轻松上手 想体验大模型的强大能力&#xff0c;却被复杂的安装、环境配置和依赖问题搞得头大&#xff1f;今天&#xff0c;我为你介绍一个能彻底解决这些烦恼的“神器”——Swift-All镜像。它就像一个为你量身…...

2026 年电子邮件认证部署缺陷与安全风险治理研究

摘要 电子邮件作为网络攻击最主要入口&#xff0c;域名伪造与商业邮件欺诈&#xff08;BEC&#xff09;持续威胁机构安全。SPF、DKIM、DMARC 作为抵御邮件伪造的核心协议已提出十余年&#xff0c;但大量组织仍存在认知不足、配置错误、长期停留在监控模式等问题&#xff0c;导致…...

PDF-Parser-1.0效果实测:中文识别超99%,表格公式完美提取

PDF-Parser-1.0效果实测&#xff1a;中文识别超99%&#xff0c;表格公式完美提取 1. 开篇实测体验 当我第一次使用PDF-Parser-1.0处理一份15页的技术文档时&#xff0c;结果让我感到惊讶。这份文档包含复杂的中英文混排内容、3个跨页表格和5个数学公式&#xff0c;传统OCR工具…...

OneDrive导致桌面图标变白的解决方案

OneDrive导致桌面图标变白的原因主要是由于OneDrive的同步功能或图标缓存损坏。当使用OneDrive的“释放空间”功能时&#xff0c;可能会导致图标变为空白页或默认图标。此外&#xff0c;图标缓存损坏也可能导致图标变白。解决方法&#xff1a;1. 调整OneDrive设置&#xff1a;在…...

intv_ai_mk11 GPU部署教程:A10显卡下intv_ai_mk11服务健康检查脚本编写与自动化监控

intv_ai_mk11 GPU部署教程&#xff1a;A10显卡下intv_ai_mk11服务健康检查脚本编写与自动化监控 1. 环境准备与快速部署 在开始编写健康检查脚本之前&#xff0c;我们需要确保intv_ai_mk11服务已经正确部署在A10显卡服务器上。以下是快速部署步骤&#xff1a; 系统要求&#…...