当前位置: 首页 > 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;谷歌…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...

鸿蒙Navigation路由导航-基本使用介绍

1. Navigation介绍 Navigation组件是路由导航的根视图容器&#xff0c;一般作为Page页面的根容器使用&#xff0c;其内部默认包含了标题栏、内容区和工具栏&#xff0c;其中内容区默认首页显示导航内容&#xff08;Navigation的子组件&#xff09;或非首页显示&#xff08;Nav…...