RHCE——一、安装部署及例行性工作

news2024/12/27 0:45:02

RHCE

  • 一、网络服务
    • 1、准备工作
    • 2、RHEL9操作系统的安装部署
    • 3、配置并优化RHEL9操作系统
    • 4、网络配置
    • 5、修改网络连接
  • 二、例行性工作
    • 1、单一执行的例行性工作
    • 2、循环执行的例行性工作
  • 三、书写定时任务的注意事项
  • 四、系统级别的计划任务
  • 五、实验
    • 1、实验一:编写脚本test.sh并执行
    • 2、实验二:设置邮件报警及例行性发送功能
    • 3、实验三

一、网络服务

1、准备工作

首先可以参考RHCSA的第一篇文章系统的安装:
红帽虚拟机安装
新手建议先看初级学习(即上链接)

  • 1、文件菜单—新建虚拟机—典型—下一步

在这里插入图片描述

  • 2、安装操作系统

在这里插入图片描述

  • 3、选择操作系统类型,如果找不到类型名,可以以内核(kernel)版本号为准,这里红帽RHEL9版本使用的是Linux5内核,而之前的8.0版本自然使用的是Linux4.0内核。

在这里插入图片描述
在这里插入图片描述

  • 4、命名虚拟机

在这里插入图片描述

  • 5、设置磁盘空间,默认为20G,动态空间申请,设置为单个文件。

在这里插入图片描述
这里单个文件创建和多个文件创建的区别:
单文件便于写入,多文件便于移动。

  • 6、自定义硬件,设置硬件参数:

在这里插入图片描述

  • 内存:推荐2GB
  • 处理器:1颗、2核心
  • 新CD/DVD:适应ISO映像文件,点击浏览按钮,选择之前下载好的RHEL9.1.iso镜像文件
  • 网络适配器:选择NAT模式
  • 显示器:去掉"加速3D图形“的对钩
  • 移除打印机等不用的设备
  • 点击完成

2、RHEL9操作系统的安装部署

  • 1、使用鼠标点击黑色界面进入RHEL9.1系统,通过ctrl+alt可以释放鼠标焦点回到Windows
  • 2、通过键盘方向键选择第一项Install Red Hat Enterprise Linux9.1选项进行安装系统

在这里插入图片描述

  • 3、选择语言

在这里插入图片描述

  • 4、安装信息设置
    • 安装目的地:显示安装未知,一般为硬盘,并进行分区:
      1、/boot:系统启动分区,400MB
      2、swap:交换分区,4GB
      3、/:根分区,期望容量省略,表示将剩余空i教案全部分配
      方法:点击下图的加号,设置挂载点及期望容量(重复多次),点击完成,点击接收更改
      这里分区在以后进入企业之后在不知道具体业务的情况下,可分此三个区。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 禁用KDUMP:内核崩溃转储保护机制,学习情况下关闭,生产环境中需要打开。
  • root账户密码设置:必须将四二对勾打上:

在这里插入图片描述

  • 创建用户:创建一个普通账户,设置密码

在这里插入图片描述

  • 5、接下来完成点击安装RHEL系统

3、配置并优化RHEL9操作系统

登录:点击“未列出”输入账户root和密码后登录
打开终端:活动->终端
关闭锁屏:活动->九个点按钮(显示应用程序)->设置->隐私->锁屏->息屏延时改为从不->关闭自动锁屏

  • 1、系统设置中检查网络连接状态
  • 2、关闭自动锁屏功能

在这里插入图片描述

  • 3、更新配置yum源
[root@server ~]# cd  /etc/yum.repos.d
[root@server yum.repos.d]# mv redhat.repo  redhat.repo.back  # 此步骤可选
# 使用xftp上传Centos-9-Stream.repo 配置文件
# 提示系统未注册,可执行以下2步,将enabled=1修改为0,但也可以不该,不影响使用
[root@server yum.repos.d]# vim  /etc/yum/pluginconf.d/product-id.conf 
enabled=0
[root@server yum.repos.d]# vim /etc/yum/pluginconf.d/subscription-manager.conf 
enabled=0
[root@server yum.repos.d]# yum  makecache  # 制作缓存
  • 4、修改主机名
[root@server ~]# cd ~
[root@server ~]# hostnamectl  set-hostname   server   # server为主机名
[root@server ~]# reboot  # 重启
  • 5、关闭防火墙及SELinux
[root ~]# vim  /etc/selinux/config # 编辑SELinux配置文件修改为关闭
SELINUX=disabled

[root ~]# systemctl stop  firewalld   # 关闭防火墙
[root ~]# systemctl disable  firewalld  #v取消开机启动
  • 5、ping测试,并拍摄快照
  • 6、对SERVER主机进行克隆,克隆出节点12即为NODE1以及NODE2,重启生效,并拍摄快照。

4、网络配置

方式一:可视化配置:nmtui
格式:

[root ~]# nmtui

在这里插入图片描述
增加一个IP地址
在这里插入图片描述
激活并重启查看;

[root ~]# nmcli c  up ens160
[root ~]# nmcli c  reload
[root ~]# ip addr

方式二:nmcli命令

  • 1、格式:
[root ~]# nmcli --help
用法:nmcli [选项] 对象 { 命令 | help }
  • 2、查看虚拟机网卡信息:
[root ~]# nmcli  c  show
[root ~]# nmcli  c  show  网卡名  #  查看网卡详细信息,点q退出
[root ~]# nmcli dev  status  #  查看已有设备的状态
[root ~]# nmcli dev  show  # 查看所有硬件设备状态
  • 3、激活网卡和关闭连接
[root ~]# nmcli c up  网卡名   
[root ~]# nmcli c down  网卡名    # 停用连接
  • 4、添加网络连接
[root ~]# nmcli c  add  type  ethernet ifname ens160 con-name ens161  autoconnect yes  ip4 192.168.48.135/24  gw4 192.168.48.2
[root ~]# nmcli c up  ens161  # 激活
[root ~]# nmcli  c  show

命令解释

  • 关键字:nmcli c add type
  • 网络类型:ethernet
  • 现有网卡名:ifname ens160
  • 新网络名称:con-name ens161
  • 开启自动连接:autoconnect yes
  • 新连接的IP地址与网关地址:ip4 192.168.48.135/24 gw4 192.168.48.2

5、修改网络连接

  • 通过ens160连接设置静态ip地址:
[root ~]# nmcli  c  mod  ens160  ipv4.method  manual  ipv4.addresses  '192.168.48.150/24'  ipv4.gateway  '192.168.48.2'  ipv4.dns  '114.114.114.114'  

[root ~]# nmcli c up ens160  # 激活
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7[root ~]# ip a  # 查看结果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:dc:cf:14 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.48.150/24 brd 192.168.48.255 scope global noprefixroute ens160
  • ipv4.method manual :手动获取(静态)
  • 通过配置文件查看和编辑:
[root ~]# vim  /etc/NetworkManager/system-connections/ens160.nmconnection 
# 配置:
[ipv4]
address1=192.168.48.150/24,192.168.48.2
dns=114.114.114.114;
method=manual
# 格式
[ipv4]
address1=IP地址/24,网关地址
dns=114.114.114.114;
method=manual

删除网络连接;

[root ~]# nmcli  c  show   # 查看网络连接
[root ~]# nmcli c del  ens161   #  删除
[root ~]# nmcli  c  show  # 再次查看
  • 配置完毕后需要快照

二、例行性工作

场景:

  • 生活中,我们有太多场景需要使用到闹钟,比如早上 7 点起床,下午 4 点开会,晚上 8 点购物,等等。

  • 在 Linux 系统里,我们同样也有类似的需求。比如我们想在凌晨 1 点将文件上传服务器,或者在晚上 10 点确认系统状态,等等。

  • 但我们不可能一直守在电脑前,毕竟我们也需要下班/睡觉,还要陪女朋友(new一个也行)。而且即使在上班期间,如果到点了还需要人工操作,未免效率太低了。

  • at 命令就是为这个需求而诞生的。使用 at 命令,你可以在特定时间自动完成你所设定的任务,也可以实现自动化,非常方便快捷!

1、单一执行的例行性工作

单一执行的例行性任务–at(一次性)
1、安装

  • at命令一般会默认安装在系统中,通过下列命令查看版本号
[root ~]# at  -V
at version 3.1.23
  • 查看执行的状态
[root ~]# systemctl status atd   # 查看状态
[root ~]# systemctl enable --now  atd  # 开机启动并当前立刻启动

2、at命令详解
1、格式:

at  -参数  日期时间

2、举例

[root ~]# at  14:08
warning: commands will be executed using /bin/sh
at> ls  /root  >  at.txt
at> <EOT>         # 按下ctrl+d退出输入状态
job 1 at Sat Aug 19 14:08:00 2023
[root ~]# at  -l   # 浏览计划任务列表
[root ~]# ls     # 查看结果
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  at.txt
[root ~]# cat  at.txt 

3、参数详情:

-l:列出系统中所有用户的at任务
atq:等价于at  -l

-d :删除或取消一个任务
-v :使用时间格式累出at任务
-c :可以列出任务后的命令内容
-f :从文件中读取

4、举例:

  • 不使用交互命令实现at任务
[root ~]# echo  "echo  'hello again'  >>  at.txt"  |  at now  +1 minute^C
[root ~]# cat  at.txt

5、时间格式:

参数说明
HH:MM在今天HH小时的MM分钟执行,若时间错过则在明天执行
HH:MM YYYY-MM-DD规定在某年某月某日的特殊时间执行
now +数字 时间单词now + 2 mintues
now + 3 hours
mow +4 days
now +5 weeks

6、注意:

  • at命令只要指定的时间正确,就可以执行对应的命令
  • at命令的输出结果不会显示到屏幕上
  • at命令中执行的命令最好使用绝对路径,不容易报错
  • 过程:输入at 时间 -> 回车 ->输入执行的命令->ctrl+d退出at
  • at命令只会执行一次

7、at命令执行过程分析

  • 第一步:寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令
  • 第二步:若/etc/at.allow不存在,则寻找/etc/at.deny(黑名单)文件,写在该文件中的用户不能使用at命令
  • 第三步:若两个文件都不存在则只有root用户可以使用at命令
  • 注意:若拒绝某用户使用at命令则可以将用户名写入到/etc/at.deny中

8、举例

  • 设置某些账户不可用at命令
[root@server ~]# useradd  ce1  # 新建账户
[root@server ~]# passwd  ce1   # 设置密码
更改用户 ce1 的密码 。
新的密码: 
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# id  ce1        # 查看账户信息
用户id=1001(ce1) 组id=1001(ce1)=1001(ce1)

[root@server ~]# tail  -1  /etc/passwd   # 查看账户信息
ce1:x:1001:1001::/home/ce1:/bin/bash

[root@server ~]# vim  /etc/at.deny  # 编辑黑名单
# 写入ce1
 
[root@server ~]# su  ce1  # 切换账户
[ce1@server root]$ cd  ~
[ce1@server ~]$ at 14:44   # 由于ce1在黑名单中,则禁止使用at命令
You do not have permission to use at.
[ce1@server ~]$ su root     # 切换回root账户
密码: 
[root@server ce1]# vim  /etc/at.deny   # 编辑黑名单
# 删除ce1
[root@server ce1]# su  ce1   # 切换账户
[ce1@server ~]$ at  14:46    # 可以使用at命令
warning: commands will be executed using /bin/sh
at> 
at> <EOT>    # ctrl+d  退出
job 6 at Sat Aug 19 14:46:00 2023
[ce1@server ~]$ su root 

9、练习白名单以及黑名单:

[root ~]# id ce1
用户id=1001(ce1) 组id=1001(ce1)=1001(ce1)
[root ~]# tail -1 /etc/passwd
ce1:x:1001:1001::/home/ce1:/bin/bash
[root ~]# vim /etc/at.deny 
[root ~]# cat /etc/at.deny 
ce1
[root ~]# su ce1
[ce1 root]$ cd
[ce1 ~]$ at 14:44
You do not have permission to use at.
[ce1 ~]$ su root
密码: 
[root ce1]# vim /etc/at.deny 
[root ce1]# cat /etc/at.deny 

[root ce1]# su ce1
[ce1 ~]$ at 14:45
warning: commands will be executed using /bin/sh
at> <EOT>             
job 3 at Sun Aug 20 14:45:00 2023
[ce1 ~]$ su root
密码: 
[root ce1]# cd
[root ~]# vim /etc/at.allow
[root ~]# su fox
[fox root]$ at
You do not have permission to use at.
[fox root]$ su root
密码: 
su: 鉴定故障
[fox root]$ su root
密码: 
[root ~]# vim /etc/at.allow 
[root ~]# cat /etc/at.allow 
fox
[root ~]# su fox
[fox root]$ at
Garbled time
[fox root]$ at 14:56
warning: commands will be executed using /bin/sh
at> <EOT>
job 4 at Sat Aug 19 14:56:00 2023
[fox root]$ su root
密码: 
[root ~]# vim /etc/at.deny 
[root ~]# su fox
[fox root]$ at
Garbled time
[fox root]$ su root
密码: 
su: 鉴定故障
[fox root]$ su root
密码: 
[root ~]# vim /etc/at.allow 
[root ~]# cat /etc/at.deny 
fox
[root ~]# su fox
[fox root]$ at
You do not have permission to use at.

2、循环执行的例行性工作

循环执行的例行性任务–crontab(周期性)
1、crontd服务

  • at 命令是在指定的时间只能执行一次任务,crontab 命令可以循环重复的执行定时任务,与Windows 中的计划任务有些类似
  • crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的,若需要安装则执行如下命令:
[root@server ~]# yum  install  crontabs  # 安装
[root@server ~]# systemctl  status  crond   # 查看状态

在这里插入图片描述

  • crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab 命令需要 crond 服务支持

  • linux 任务调度的工作主要分为以下两类:

    • 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
    • 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

2、crontab工作过程

  • 当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高

  • 当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令

  • crontab 执行的每一项工作都会被 记录到 /var/log/cron 这个日志文件中

  • 当用户使用 crontab 新建工作之后,该项工作就会被记录到 /var/spool/cron/目录里面

3、crontab命令详解
(1)、格式

crontab  [-u  user]  [-l| -r | -e] 

(2)、参数

参数说明
-u只有root才能执行该任务
-e编辑crontab工作内容
-l查询crontab任务内容
-r删除cronatb任务

(3)、编辑crontab

  • 格式
crontab  -e
  • 注意:写入的命令一行一个命令,每行共6段:时间 命令
  • 时间共5段,意义如下:
表示意义分钟小时日期月份星期
数字范围0-590-231-311-120-7(0和7都表示星期日)

(4)、特殊字符

*   :  任意时刻
-   :  表示范围
,(逗号)  :分割时段
*/数字   :指定时间间隔频率,如:每3分钟执行一次:*/3

(5)、时间描述示例:

1 2 * * *   : 每天凌晨21分执行动作
0 17 * * 1  : 每周一下午17点整执行动作
0 5 1,15 * * :每月1日和15日凌晨5点执行动作
40 4 * * 1-5 :每周一至周五凌晨440分执行动作
*10 
*/10 4 * * * : 每天凌晨4点每隔10分钟执行动作
3,15 8-11 */2 * * :每隔2天上午8-11点的第3分钟和第15分钟执行动作
* * * * * :每隔1分钟执行动作

三、书写定时任务的注意事项

  • 6 个字段都不能为空,如果不确定则使用*表示任意时间
  • crontab命令任务的最小时间单位为分钟,最大有效时间为月,如:2024年某时执行、3点30分30秒这样的时间日期无法被识别
  • 定义时间时,日期和星期最好不要一起出现,由于都是以天为单位,非常让管理员混淆
  • 在定时任务中不能,不管是写命令还是在脚本中写命令,最好都用绝对路径,相对路径有时会报错

四、系统级别的计划任务

  • crontab -e 时每个用户都可以执行的命令,但有时定时任务必须由系统执行,此时就需要编辑/etc/crontab配置文件来实现
  • 主配置文件:
[root ~]# vim  /etc/crontab
  • 仅能通过root定义,不可以使用普通账户身份去执行计划任务
  • 方法:在/etc/crontab 最后一行新增计划任务即可
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

分析

  • SHELL=/bin/bash : 指定系统使用那个shell解释器去执行
  • PATH=/sbin:/bin:/usr/sbin:/usr/bin : 系统执行命令的搜索路径
  • MAILTO=root : 表示执行任务的信息通过邮件发送给谁
  • user-name : 表示执行命令的用户是谁

五、实验

1、实验一:编写脚本test.sh并执行

  • 1、编写脚本test.sh
[root ~]vim test.sh
#!/bin/bash

while :
do
        echo  "this is my test sh"$(date)  >>  /root/cro.txt
        sleep 1
done
  • 2、设置周期性的计划任务
[root ~]# crontab  -e
*/1 * * * * /bin/bash  /root/test.sh

注意:crond服务会自动启动,crontab命令只要保存就会生效

  • 3、查看任务
[root ~]# crontab  -l*/1 * * * * /bin/bash  /root/test.sh
[root ~]# cat /root/cro.txt 

在这里插入图片描述

  • 4、删除任务
[root ~]# crontab  -r    # 删除
[root ~]# crontab  -l    # 查看
no crontab for root
  • 5、终止循环进程
[root ~]# ps  -aux  |  grep  test  # 查看已存在的test进程
[root ~]# kill  -9  进程号   # 强制终止

示例:

[root ~]# ps -aux | grep test
root        2514  0.1  0.1 222516  3460 ?        Ss   15:31   0:00 /bin/bash /root/test.sh
root        2664  0.1  0.1 222516  3404 ?        Ss   15:32   0:00 /bin/bash /root/test.sh
root        2918  0.1  0.1 222516  3476 ?        Ss   15:33   0:00 /bin/bash /root/test.sh
root        3445  0.0  0.1 221680  2360 pts/0    S+   15:34   0:00 grep --color=auto test
[root ~]# kill -9 2514
[root ~]# kill -9 2664
[root ~]# kill -9 2918
[root ~]# ps -aux | grep test
root        3753  0.0  0.1 221680  2344 pts/0    S+   15:35   0:00 grep --color=auto test

2、实验二:设置邮件报警及例行性发送功能

  • 1、登陆qq邮箱,在最上栏找到账号点击,并找到这个服务点击启动服务(会让手机发送验证码)。

请添加图片描述

  • 2、到下一个界面并将授权码复制并保存,之后会用到
  • 3、安装邮件服务
[root ~]# yum install s-nail -y
上次元数据过期检查:0:51:48 前,执行于 20230819日 星期六 145645秒。
依赖关系解决。
=========================================================================================================================================================
 软件包                            架构                              版本                                     仓库                                  大小
=========================================================================================================================================================
安装:
 s-nail                            x86_64                            14.9.22-8.el9                            AppStream                            622 k

事务概要
=========================================================================================================================================================
安装  1 软件包

总下载:622 k
安装大小:1.1 M
下载软件包:
s-nail-14.9.22-8.el9.x86_64.rpm                                                                                          851 kB/s | 622 kB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                     847 kB/s | 622 kB     00:00     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                          1/1 
  运行脚本: s-nail-14.9.22-8.el9.x86_64                                                                                                              1/1 
  安装    : s-nail-14.9.22-8.el9.x86_64                                                                                                              1/1 
  运行脚本: s-nail-14.9.22-8.el9.x86_64                                                                                                              1/1 
  验证    : s-nail-14.9.22-8.el9.x86_64                                                                                                              1/1 

已安装:
  s-nail-14.9.22-8.el9.x86_64                                                                                                                            

完毕!
  • 4、配置邮件服务
[root ~]# vim  /etc/s-nail.rc

这里在最后加下面这几条命令。

set  from=17674044.com
set  smtp=smtp.qq.com
set  smtp-auth-user=qq邮箱
set  smtp-auth-password=授权码
set  smtp-auth=login

注意:文件配置完毕需要强制保存并退出,末行模式下输入wq!(由于这个文件为只读文件)
查看:

[root ~]# vim /etc/s-nail.rc 
[root ~]# tail -5 /etc/s-nail.rc 
set smtp=smtp.qq.com
set smtp-auth-user=3103646008.com
set smtp-auth-password=rxjivbmohdytddjh
set smtp-auth=login

[root ~]# ll /etc/s-nail.rc 
-r--r--r-- 1 root root 9771  819 15:57 /etc/s-nail.rc
  • 5、测试
[root ~]# echo "testmail" | mail -s "testmail" 1927875806.com
s-nail: Warning: $LOGNAME (fox) not identical to user (root)!
s-nail: Warning: $USER (fox) not identical to user (root)!
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Warning: variable superseded or obsoleted: smtp-auth-user
s-nail: Warning: variable superseded or obsoleted: smtp-auth-password
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail:   Please read the manual section "On URL syntax and credential lookup"
[root ~]# echo "testmail" | mail -s "testmail" 3103646008.com
s-nail: Warning: $LOGNAME (fox) not identical to user (root)!
s-nail: Warning: $USER (fox) not identical to user (root)!
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Warning: variable superseded or obsoleted: smtp-auth-user
s-nail: Warning: variable superseded or obsoleted: smtp-auth-password
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail:   Please read the manual section "On URL syntax and credential lookup"

这里我们发送了两封测试邮件,发送成功则为上一步配置成功。

  • 6、设置周期性的任务,每隔1分钟发送邮件
[root ~]# crontab  -e
MAILTO=qq邮箱

* * * * * echo  "警告,server服务器内存较低,请速处理."  |  mail  -v  -s  "告警邮件"  qq邮箱

这里配置即为每分钟发送一次。

3、实验三

每天6:00将日志文件/var/log/messages 文件进行备份,备份到/backup目录中,备份时需要将文件名修改为logfileYYYY-MM-DD-HH:MM:SS

[root ~]# mkdir  /backup

[root ~]# vim  /etc/crontab
0 6 * * * root  /usr/bin/cp  /var/log/messages /backup/logfile`date  +\%Y-\%m-\%d-\%H:\%M:\%S` 


# 注意
	# 反引号``:表示将引起的内容识别为命令
	# 在crontab中%表示换行,需要增加转义符\进行转义
[root ~]# mkdir /backup
[root ~]# vim /etc/crontab
[root ~]# vim /etc/crontab
[root ~]# cd /backup/
[root backup]# ls
logfile2023-08-19-16:37-01  logfile2023-08-19-16:38-01
[root backup]# ll
总用量 2344
-rw------- 1 root root 1196788  819 16:37 logfile2023-08-19-16:37-01
-rw------- 1 root root 1196788  819 16:38 logfile2023-08-19-16:38-01
[root backup]# cd
[root ~]# vim /etc/crontab 
[root ~]# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

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

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

相关文章

OJ练习第152题——分割回文串 II

分割回文串 II 力扣链接&#xff1a;132. 分割回文串 II 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是回文。 返回符合要求的 最少分割次数 。 示例 Java代码 class Solution {public int minCut(String s) {int n s.leng…

python基础5——正则、数据库操作

文章目录 一、数据库编程1.1 connect()函数1.2 命令参数1.3 常用语句 二、正则表达式2.1 匹配方式2.2 字符匹配2.3 数量匹配2.4 边界匹配2.5 分组匹配2.6 贪婪模式&非贪婪模式2.7 标志位 一、数据库编程 可以使用python脚本对数据库进行操作&#xff0c;比如获取数据库数据…

C++系列-引用

引用 引用的基本使用引用的起源引用的语法引用的本质引用的注意事项引用和指针 引用作为函数参数引用作为函数的返回值常量引用其它用返回值方式调用函数&#xff08;case 1&#xff09;用函数的返回值初始化引用的方式调用函数&#xff08;case 2&#xff09;用返回引用的方式…

No113.精选前端面试题,享受每天的挑战和学习

文章目录 怎样理解 Vue 的单向数据流说下MVVM说下cookieVue 的性能优化Cookie、localStorage 和 sessionStorageVue中的computed属性和watch属性有什么区别&#xff1f; 怎样理解 Vue 的单向数据流 在Vue中&#xff0c;单向数据流是指数据在Vue组件中的传递方向是有限制的&…

使用Vscode调试shell脚本

在vcode中安装bash dug插件 在vcode中添加launch.json配置&#xff0c;默认就好 参考&#xff1a;http://www.rply.cn/news/73966.html 推荐插件&#xff1a; shellman(支持shell,智能提示) shellcheck(shell语法检查) shell-format(shell格式化)

【文化课学习笔记】【化学】金属及其化合物

【化学】必修一&#xff1a;金属及其化合物 钠及其化合物 钠单质 物理性质 颜色&#xff1a;银白色&#xff0c;有金属光泽&#xff1b;密度&#xff1a;\(\mathrm{\rho_{H_2O}>\rho_{Na}>\rho_{煤油}}\)(钠可以在煤油中进行保存)&#xff1b;熔点&#xff1a;低于 \(100…

多种方法实现 Nginx 隐藏式跳转(隐式URL,即浏览器 URL 跳转后保持不变)

多种方法实现 Nginx 隐藏式跳转(隐式URL,即浏览器 URL 跳转后保持不变)。 一个新项目,后端使用 PHP 实现,前端不做路由,提供一个模板,由后端路由控制。 Route::get(pages/{name}, [\App\Http\Controllers\ResourceController::class, getResourceVersion])

如何在工作中利用AIGC提质增效?

引言 人工智能技术快速发展&#xff0c;以 ChatGPT 为代表的新的人工智能语言模型的出现与更迭&#xff0c;引发人们极大的兴奋和关注。越来越多的企业开始将 AI 技术应用到生产流程&#xff0c;以提高工作效率和生产力。AIGC&#xff08;AI Generated Content&#xff09;是人…

文本生成解码策略 Beam Search, top_k, temperature

一、从Greedy Search到Beam Search Greedy search是指在每个t时刻选择下一个词时&#xff0c;根据 wtargmaxwP(w|w1:t−1)选择概率最高的词。 以上图为例&#xff1a; 从单词“The”开始&#xff0c;算法在选择下一个词时&#xff0c;贪心的选择了概率最高的“nice”&#xf…

2023-8-15 差分

题目链接&#xff1a;差分 #include <iostream>using namespace std;const int N 100010;int n, m; int a[N], b[N];void insert(int l, int r, int c) {b[l] c;b[r 1] - c; }int main() {scanf("%d%d", &n, &m);for(int i 1; i < n; i)scanf…

“鸿蒙”商标被抢先注册,华为上诉失败,鸿蒙系统将被迫改名?

作为我国最著名的手机通讯企业之一&#xff0c;华为凭借着无与伦比的创新设计与可靠实用的用户体验&#xff0c;一度成为了国内最受欢迎的手机品牌。此外&#xff0c;华为手机在海外市场的销量也不遑多让&#xff0c;不仅质量优异&#xff0c;在通讯的稳定性与可靠性上&#xf…

韦东山老师 RTOS 入门课程(一)RTOS 介绍,熟悉裸机的汇编逻辑

韦东山老师 RTOS 入门课程 课程链接&#xff1a;韦东山直播公开课&#xff1a;RTOS实战项目之实现多任务系统 第1节&#xff1a;裸机程序框架和缺陷_哔哩哔哩_bilibili RTOS 介绍 裸机&#xff1a;固定顺序执行。 中断&#xff1a;可以一直专心做循环里的事情&#xff0c;直…

林【2017】

一、判断 二、单选 三、填空 四、应用 五、算法设计

C++笔记之左值与右值、右值引用

C笔记之左值与右值、右值引用 code review! 文章目录 C笔记之左值与右值、右值引用1.左值与右值2.右值引用——关于int&& r 10;3.右值引用——对比int&& r 10;和int& r 10;4.右值引用&#xff08;rvalue reference&#xff09;的概念 1.左值与右值 2.…

Jmeter 分布式性能测试避坑指南

在做后端服务器性能测试中&#xff0c;我们会经常听到分布式。那你&#xff0c;是否了解分布式呢&#xff1f;今天&#xff0c;我们就来给大家讲讲&#xff0c;在企业实战中&#xff0c;如何使用分布式进行性能测试&#xff0c;实战过程中&#xff0c;又有哪些地方要特别注意&a…

stm32单片机开关输入控制蜂鸣器参考代码(附PROTEUS电路图)

说明&#xff1a;这个buzzer的额定电压需要改为3V&#xff0c;否则不会叫&#xff0c;源代码几乎是完全一样的 //gpio.c文件 /* USER CODE BEGIN Header */ /********************************************************************************* file gpio.c* brief Thi…

【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求

问题描述 使用Azure API Management, 想对一些固定的IP地址进行访问次数的限制&#xff0c;如被限制的IP地址一分钟可以访问10次&#xff0c;而不被限制的IP地址则可以无限访问&#xff1f; ChatGPT 解答 最近ChatGPT爆火&#xff0c;所以也把这个问题让ChatGPT来解答&#x…

Python可视化在量化交易中的应用(14)_Seaborn散点图

Seaborn中带回归线的散点图的绘制方法 seaborn中绘制散点图使用的是sns.scatterplot()函数&#xff1a; sns.scatterplot(x,y,hue,style,size,data,palette,hue_order,hue_norm,sizes,size_order,size_norm,markers,style_order,x_bins,y_bins,units,estimator,ci95,n_boot100…

wazuh部署

文章目录 1.ova文件获取2.VMware导入ova文件3.wazuh目录文件4.wazuh解析原理 1.ova文件获取 访问官网 https://wazuh.com/依次点击红色标注将文件下载到本地 2.VMware导入ova文件 直接打开下载到本地的ova文件 设置导入的位置和名称 初始密码账户为wazuh-user:wazuh …

手写模拟SpringBoot核心流程(一):实现极简一个SpringBoot——模拟SpringBoot启动过程

前言 Spring Boot 是一个开源的框架&#xff0c;用于简化 Spring 应用程序的开发和部署。它建立在 Spring Framework 的基础上&#xff0c;内置了web服务器——tomcat和jetty&#xff0c;使得 Spring 应用的构建变得更加快速、简单和可维护。 本文通过实现一个SpringBoot&…