Linux 实用操作技巧一

news2024/11/19 9:27:51

文章目录

  • Linux 实用操作技巧
    • 前言
    • 查找当前目录下所有 .gz 结尾的文件
      • 查找当前目录超过30天没有修改过且文件大于10M的.gz文件。
      • 将software 目录下大于 100k 的文件移动至 /tmp下
    • 时间戳快速转换
    • 动态查看日志,并且停止
    • 获取内存、CPU、磁盘、IO等信息
    • 获取 公网 ip
    • 总结

在这里插入图片描述

Linux 实用操作技巧

前言

大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在参加 Linux 方向的新星计划。把自己学习的 Linux的一些实用的操作技巧片段 分享出来,供大家学习交流,如若笔记中有不对的地方,那一定是当时我的理解还不够,希望你能及时提出。

前人述备矣,我只是知识的搬运工。喜欢笔记的欢迎给个好评或者点赞哟!

查找当前目录下所有 .gz 结尾的文件

查找当前目录超过30天没有修改过且文件大于10M的.gz文件。

 find . -name "*.gz" -type f -ctime +30 -size +10M -exec ls -l {} \;
  • find . 表示当前目录及其子目录下
  • find / 表示根目录及其子目录下
  • name 表示文件名称
  • name “*.gz” 表示不以 *.gz 结尾的文件
  • type 文件类型
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
-ctime + 表示更改时间
-atime  -n[+n]: 找出文件访问时间在n日之内[之外]的文件。
-ctime  -n[+n]: 找出文件更改时间在n日之内[之外]的文件。
-mtime  -n[+n]: 找出修改数据时间在n日之内[之外]的文件。
-amin   -n[+n]: 找出文件访问时间在n分钟之内[之外]的文件。
-cmin   -n[+n]: 找出文件更改时间在n分钟之内[之外]的文件。
-mmin   -n[+n]: 找出修改数据时间在n分钟之内[之外]的文件。
  • -size : 表示大小, +表示超过指定大小的文件,- 反之
  • -exec 、xargs:查找后再执行操作
  • {} \ : {}表示结果,\ 表示操作的目录

将software 目录下大于 100k 的文件移动至 /tmp下

find /software -size +100k -exec mv {} /tmp 

时间戳快速转换

data 命令打印的时间是难以读懂的。

[root@localhost ~]# date
2023年 6月24日 星期六 22时42分08秒 CST
[root@localhost ~]# date +%s
1687617803

我们可以使用 -d 来格式化 :

[root@localhost ~]# date -d@1687617803 +"%Y-%m-%d %H:%M:%S"
2023-06-24 22:44:51
[root@localhost ~]# date +"%Y-%m-%d %H:%M:%S"
2023-06-24 22:44:51

动态查看日志,并且停止

如果想在日志中出现 Exception 等信息时立刻停止 tail 监控,可以通过如下命令来实现 :

tail -f test.log | sed '/Exception / q'

获取内存、CPU、磁盘、IO等信息

#!/bin/bash
# 获取要监控的本地服务器IP地址
IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`
echo "IP地址:"$IP
 
# 获取cpu总核数
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu总核数:"$cpu_num
 
# 1、获取CPU利用率
################################################
#us 用户空间占用CPU百分比
#sy 内核空间占用CPU百分比
#ni 用户进程空间内改变过优先级的进程占用CPU百分比
#id 空闲CPU百分比
#wa 等待输入输出的CPU时间百分比
#hi 硬件中断
#si 软件中断
#################################################
# 获取用户空间占用CPU百分比
cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`
echo "用户空间占用CPU百分比:"$cpu_user
 
# 获取内核空间占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`
echo "内核空间占用CPU百分比:"$cpu_system
 
# 获取空闲CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`
echo "空闲CPU百分比:"$cpu_idle
 
# 获取等待输入输出占CPU百分比
cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}' | cut -f 1 -d "%"`
echo "等待输入输出占CPU百分比:"$cpu_iowait
 
#2、获取CPU上下文切换和中断次数
# 获取CPU中断次数
cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'`
echo "CPU中断次数:"$cpu_interrupt
 
# 获取CPU上下文切换次数
cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'`
echo "CPU上下文切换次数:"$cpu_context_switch
 
#3、获取CPU负载信息
# 获取CPU15分钟前到现在的负载平均值
cpu_load_15min=`uptime | awk '{print $11}' | cut -f 1 -d ','`
echo "CPU 15分钟前到现在的负载平均值:"$cpu_load_15min
 
# 获取CPU5分钟前到现在的负载平均值
cpu_load_5min=`uptime | awk '{print $10}' | cut -f 1 -d ','`
echo "CPU 5分钟前到现在的负载平均值:"$cpu_load_5min
 
# 获取CPU1分钟前到现在的负载平均值
cpu_load_1min=`uptime | awk '{print $9}' | cut -f 1 -d ','`
echo "CPU 1分钟前到现在的负载平均值:"$cpu_load_1min
 
# 获取任务队列(就绪状态等待的进程数)
cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'`
echo "CPU任务队列长度:"$cpu_task_length
 
#4、获取内存信息
# 获取物理内存总量
mem_total=`free | grep Mem | awk '{print $2}'`
echo "物理内存总量:"$mem_total
 
# 获取操作系统已使用内存总量
mem_sys_used=`free | grep Mem | awk '{print $3}'`
echo "已使用内存总量(操作系统):"$mem_sys_used
 
# 获取操作系统未使用内存总量
mem_sys_free=`free | grep Mem | awk '{print $4}'`
echo "剩余内存总量(操作系统):"$mem_sys_free
 
# 获取应用程序已使用的内存总量
mem_user_used=`free | sed -n 3p | awk '{print $3}'`
echo "已使用内存总量(应用程序):"$mem_user_used
 
# 获取应用程序未使用内存总量
mem_user_free=`free | sed -n 3p | awk '{print $4}'`
echo "剩余内存总量(应用程序):"$mem_user_free
 
 
# 获取交换分区总大小
mem_swap_total=`free | grep Swap | awk '{print $2}'`
echo "交换分区总大小:"$mem_swap_total
 
# 获取已使用交换分区大小
mem_swap_used=`free | grep Swap | awk '{print $3}'`
echo "已使用交换分区大小:"$mem_swap_used
 
# 获取剩余交换分区大小
mem_swap_free=`free | grep Swap | awk '{print $4}'`
echo "剩余交换分区大小:"$mem_swap_free
 

#5、获取磁盘I/O统计信息
echo "指定设备(/dev/sda)的统计信息"
# 每秒向设备发起的读请求次数
disk_sda_rs=`iostat -kx | grep sda| awk '{print $4}'`
echo "每秒向设备发起的读请求次数:"$disk_sda_rs
 
# 每秒向设备发起的写请求次数
disk_sda_ws=`iostat -kx | grep sda| awk '{print $5}'`
echo "每秒向设备发起的写请求次数:"$disk_sda_ws
 
# 向设备发起的I/O请求队列长度平均值
disk_sda_avgqu_sz=`iostat -kx | grep sda| awk '{print $9}'`
echo "向设备发起的I/O请求队列长度平均值"$disk_sda_avgqu_sz
 
# 每次向设备发起的I/O请求平均时间
disk_sda_await=`iostat -kx | grep sda| awk '{print $10}'`
echo "每次向设备发起的I/O请求平均时间:"$disk_sda_await
 
# 向设备发起的I/O服务时间均值
disk_sda_svctm=`iostat -kx | grep sda| awk '{print $11}'`
echo "向设备发起的I/O服务时间均值:"$disk_sda_svctm
 
# 向设备发起I/O请求的CPU时间百分占比
disk_sda_util=`iostat -kx | grep sda| awk '{print $12}'`
echo "向设备发起I/O请求的CPU时间百分占比:"$disk_sda_util

获取 公网 ip

ipconfig、ip addr 命令只能获取到当前网卡的局域网 IO,但是如果你想获取你的公网 IP,可以试一下:

curl ip.sb

总结

大家好,这里是 Rocky 编程日记,该篇是我对 Linux 学习的一些好用技巧的简单分享,希望你们喜欢,如果有更多的好用的 Linux 技巧,期待您在评论区留言嗷~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于 SpringBoot 日志文件的知识

目录 日志有什么用? 日志怎么用? 自定义日志打印 在程序中得到日志对象 使用日志对象打印日志 日志格式 日志级别的分类与使用 日志级别设置 日志持久化 日志有什么用? 日志对于我们来说,最主要的用途就是排除和定位问题…

Java设计模式之行为型-模板方法模式

目录 一、概念 二、角色设计 三、代码实现 四、总结 一、概念 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类当中,使得子类可以不改变该算法结构的情况下重定义该算法的特定步骤,即在一个抽象类中公开定义了执行某一方法的模板…

一种新颖的智能优化算法—飞蛾扑火优化(MFO)算法

飞蛾扑火优化(Moth-Flame Optimization,MFO)算法是Mirjalili于2015年提出的一种新型智能优化算法,其灵感来源于一种特殊的导航机制—横向定位导航,实现了勘探与开发的较好平衡以获得全局优化性能。MFO算法具有并行优化能力强,全局性优且不易落入局部极值…

VS安装中报“应用程序无法启动,因为应用程序的并行配置不正确”的解决办法

1.问题描述 安装应用程序的时候,提示“应用程序无法启动,因为应用程序的并行配置不正确”。 2.解决过程 方法一 开启服务 开始→ 运行(输入services.msc或者服务)→确定后打开服务;找到Windows Modules Installer服务…

Advanced Installer使用指南

PC打包软件有很多 我只推荐一个advanced Installer完全傻瓜式操作,直接点就行了。innoSetUp需要学习它的脚本语言,学习成本太高了,而且网上的学习资料也很少。其它东西 增加依赖 我的程序需要dotNet5.0.13的运行时环境。 但是在AI上面没有…

chatgpt赋能python:Python撤销和回退的完全指南:从基础到高级

Python撤销和回退的完全指南:从基础到高级 Python是一种强大的编程语言,但即使在最好的情况下,错误也会出现。在此时,撤销错误和回退操作会变得非常重要。本指南将介绍Python中的撤销和回退操作,从基础操作到高级操作…

SparkSQL之AstBuilder

Spark SQL是基于ANTLR实现的,前文中有关于ANTLR的介绍文章《ANTLR实战》和《设计模式之访问者模式》,这篇文章主要介绍的内容是AstBuilder类。 Catalyst中提供了直接面向用户的ParseInterface接口,该接口中包含了对SQL语句、Expression表达式…

DDD(领域驱动设计) 核心概念浅析

文章目录 DDD(领域驱动设计) 核心概念浅析前言贫血模型什么是贫血模型贫血模型的优点贫血模型的缺点 充血模型充血模型的优点充血模型的缺点 DP 概念抽象接口简单概念简单概念流程:实现 统一语言和模型价值DP 和 Entity 的区别 Aggregate(聚合&#xff0…

HackTheBox - 学院【CPTS】复习1 - PASSWORD ATTACKS

前言 有一个月时间没发文章了,我在6月11号进入htb学院学习CPTS,在扎实的THM基础的加持下,我学的非常顺利,其实大部分内容都相当于复习,而学到的内容只是一些可能不太常见、又或者非常细节的小技巧,这也是非…

vscode 出现 No such file or directory 的解决办法(python tkinter)

问题 Traceback (most recent call last): File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\navigation\demo.py”, line 202, in w Window() File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\navigation\demo.py”, line 95, in init self.initWindo…

ThreadPoolExecutor源码剖析

ThreadPoolExecutor源码涉及到的内容比较多,需要一点点的去啃和查看… ThreadPoolExecutor的核心属性 ThreadPoolExecutor的核心属性主要就是CTL。基于CTL获取到线程池的状态以及工作线程个数。 ctl是一个int类型的整数,內部基于AtomicInteger&#xff0…

再谈StringBuilder为什么线程不安全以及带来的问题

1 缘起 比较有意思的是,学习锁消除的过程中,有人讲到StringBuffer在方法内构建,不会被其他方法引用时,StringBuffer的锁会被消除, 于是,顺便看了一下同源的StringBuidler为什么线程不安全,以及…

【无标题】TP-LINK XDR5470 WiFi6路由器 简单开箱评测

TL-XDR5470易展版AX5400双频WiFi6路由器 简单开箱测评,上次买的XDR6078覆盖不够,还是得每层再买一个,所以又买了个TL-XDR5470,支持易展mesh。 上次买的XDR6078没有外置FEM功放芯片,所以信号差了一点,得加2…

PE系统盘制作

目录 前言 制作PE盘的步骤如下 前言 PE盘是一个轻量级的系统,类似于Windows系统。当您的计算机无法进入Windows系统时,您可以通过启动PE盘来访问一个独立的操作系统,从而执行各种任务,例如拷贝重要文件或进行系统安装。PE盘通常…

win10查看端口是否被占用,被哪一个程序占用(图文)

window系统中有时候我们会出现需要的端口号被占用,但不知道具体是哪个程序占用的。这时我们需要找到使用此端口的程序。 方法如下: 1)以管理员身份打开命令提示符窗口(开始-运行)。 2)使用命令查看端口使…

R730直通Tesla P40显卡

本次讲述如何在R730的ESXi上,将Tesla P40直通到centos7.7和WinServer2016。使用直通模式,安装普通的驱动即可,不需要vGPU的驱动。 按计划本来后面要自己装一下系统、做RAID的,不过最近需要用到显卡,所以先把显卡安装上…

初探Flink的Java实现流处理和批处理

端午假期,夏日炎炎,温度连续40度以上,在家学习Flink相关知识,记录下来,方便备查。 开发工具:IntelliJ Idea Flink版本:1.13.0 本次主要用Flink实现批处理(DataSet API) 和…

SAM与Prompt的结合

1. SAM介绍 由Meta AI Research开发的Segment anything model(简称SAM)最近引起了广泛的关注。SAM在超过10亿个mask的大型分割数据集上进行了训练,能够在特定的图像上分割任何对象。在最初的SAM工作中,作者们使用了零样本迁移任务…

08- c语言字符串 (C语言)

一 字符串的定义及基本使用 1、什么是字符串 被双引号引用的字符集合!例如:”hello” 、”world”,或者是以 \0 结尾的字符数组!!! 比如:char ch[] {h, e, \0} 注意:”hello” 中…

GB50149-2010电气装置安装工程母线装置施工及验收规范

为了确保强硬钢丝绳金属封闭体绝缘金属封闭母线、绝缘子、硬件、穿墙套管等设备母线的安装质量,加快安装技术的进步,和确保设备的安全运行,使该规范。 本规范适用于总线设备安装了750 kv及以下的T范围施工和验收。 母线的安装应按照批准的设计文件施工。 设备和设备运输、储…