001.shell-每日练习一文件创建

0x00.练习要求

  • 在/usr/local/uz654目录下,按照xxxx-xx-xx生成一个文件,如:2023-02-11.log
  • 把磁盘的使用情况写到这个文件中。
  • 删除该目录下五天前的日志文件。

0x01.核心命令掌握

  • date 命令用法
  • df 命令

Shell 脚本如下:

#! /bin/bash

d=date +%F

dir=/usr/local/uz654

if [ ! -d $dir ]

then

mkdir -p $dir

fi

df -h >$dir/$d.log

# find $dir/ -mtime +5 |xargs rm -rf # 执行前先进行测试,否则会爆炸 Ooops!

0xff.find 中 时间属性参数

参数 文件属性 说明
-mtime Modify Time 最近更改时间
-atime Access Time 最近访问时间
-ctime Change Time 最近状态改动时间
- Birth Time 文件创建时间

如果想要定期删除服务产生的日志,启动删除7天前的日志等。可以使用crontab+find的组合命令,本练习不做要求。

0xff01. mtime来看看具体的用法

-mtime 后面跟一个整数,有三种(n为数字):

  1. -mtime n 表示为:在n天之前的“一天之内”被更改过内容的文件
  2. -mtime -n 表示为:在n天之内(含n天本身)被更改过内容的文件名
  3. -mtime +n 表示为:在n天之前(不含n天本身)被更改过内容的文件名
0xff02. 举个栗子

find ./ -mtime 0 # 当前目录下24小时内更改过内容的文件列出

find ./ -mtime -2 # 当前目录下2天之内被更改过内容的文件列出;

find ./ -mtime +2 # 当前目录下2天之前的那一天被更改过的文件列出

001.shell-每日练习一文件创建的更多相关文章

  1. shell每日发邮件

    LOGFILE="$fank/"`date +"%Y%m%d"`"data"#每日文件 from="abc@123.com&quo ...

  2. 【shell 每日一练7】一键安装mysql5.7,以及密码及策略修改

    一.一键安装Mysql脚本 [root@uat01 ~]# cat InstallMysql01.sh #!/bin/bash #-- #旅行者-Travel #.安装wget yum -y inst ...

  3. 【shell 每日一练6】初始化安装Mysql并修改密码

    一.简单实现mysql一键安装 参考:[第二章]MySQL数据库基于Centos7.3-部署 此脚本前提条件是防火墙,selinux都已经设置完毕: [root@web130 ~]# cat Inst ...

  4. (001)每日SQL学习:关于UNION的使用

    union内部必须有相同的列或者相同的数据类型,同时,每条 SELECT 语句中的列的顺序必须相同.union合并了select的结果集. union 与union all的不同: union合并了重 ...

  5. 【Shell 开发】Shell 目录

    目录 [第一章]Shell 概述 [第二章]Shell 变量 [第三章]Shell 变量的数值计算 [第四章]Shell 条件测试表达式 [shell 练习1]编写Shell条件句练习 [shell ...

  6. 【第二章】MySQL数据库基于Centos7.3-部署

    一.MySQL数据库的官方网址: https://www.mysql.com/ https://www.oracle.com/ http://dev.mysql.com/doc/refman/5.7/ ...

  7. Linux 批量创建user和批量删除用户

    Linux 批量创建user和批量删除用户 以下为批量创建用户: #首先我们需要创建一个xxx.txt文件,把需要的我们创建的用户写在这个文本里面来,注意:每写完一个用户都需要换行. vim user ...

  8. Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》

    (一)文件创建命令 1.touch命令 比如:touch abc命令在本地文件夹中创建了一个名为abc的空文件 2.cp命令 cp命令同意我们把一个文件的内容拷贝到同名或不同名的文件里,复制得到的文件 ...

  9. shell编程001

    1.shell中如何进行算术计算   A=1; B=2 (1)let C=$A+$B (2)C=$[$A+$B] (3)C=$(($A+$B)) (4)C=`expr $A + $B` (注意运算符前 ...

  10. 每日回顾Shell —cat,tail,head

    Shell中常常会用到cat命令.可是总是不是特别清楚: cat命令的用途是连接文件或标准输入并打印. 这个命令经常使用来显示文件内容.或者将几个文件连接起来显示.或者从标准输入读取内容并显示,它常与 ...

随机推荐

  1. 网络通讯协议分类-IP地址

    网络通讯协议分类 通信的协议还是比较复杂的,java.net包中包含的类和接口,它们提供低层次的通信细节.我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节. java.net包 ...

  2. 部署并运行laravel项目显示:SQLSTATE[HY000] [2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    composer安装完所需依赖之后仍旧打不开页面,排查之后发现是数据库的问题... 也就是说,.env文件的配置写错了,改一下就好啦

  3. 【学习笔记】C++ 常量折叠原理和验证

    以下的代码很有意思,在相同时刻,相同的内存地址,数据居然会不一样. #include <iostream> int main(void) { const int const_val = 3 ...

  4. 让 MSYS2 Bash 像 Git Bash 一样显示 Git 分支名称

    Git for Windows 的 Bash 有一个很实用的功能,如果当前目录处于 Git 仓库中,那么命令行中会显示当前 Git 分支的名称(见下图). 然而原版的 MSYS2 Bash 没有这个功 ...

  5. drf-day2——restful规范、序列化反序列化、基于django编写五个原生接口、drf介绍和快速使用、cbv源码分析

    目录 一.restful规范(重要,不难) 概念 十个规范 二.序列化反序列化 三.基于django原生编写5个接口 四.drf介绍和快速使用 概念 安装 代码 五.cbv源码分析 六.作业 1.使用 ...

  6. SpringBoot 2.x 在Tomcat8上无法运行,报无法访问错误

    非法访问:此Web应用程序实例已停止.无法加载[].为了调试以及终止导致非法访问的 这仅是我的一个Filter重写的时候没有重写他的其他两个方法,导致我在Tomcat8上不能运行,但在Tomcat9上 ...

  7. axios设置全局headers

    需求:每次请求的时候都设置token为headers非常不方便 axios提供配置全局headers 这里我主要使用的是加 一个token验证 Global axios defaults axios. ...

  8. Vue23 ref属性

    1 简介 在js中,我们获取一个元素可以通过document.getElementById()去获取,在vue中,使用了ref属性来替代id,通过ref属性可以获取html元素以及vue组件实例对象 ...

  9. Vue11 vue的data中属性的值(基础数据类型和对象)

    1 代码 <body> <div id="root"> <h1>{{name}}</h1> <h1>{{obj}}< ...

  10. mysql14 sql优化-索引失效

    1.索引失效 先创建符合索引,三个字段 ALTER table abilityassessrecord add INDEX idx_customerno_roomno_abilityassessrec ...