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

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

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 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::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 1000link/ether 00:0c:29:dc:cf:14 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 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/bashwhile :
doecho  "this is my test sh"$(date)  >>  /root/cro.txtsleep 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

相关文章:

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

RHCE 一、网络服务1、准备工作2、RHEL9操作系统的安装部署3、配置并优化RHEL9操作系统4、网络配置5、修改网络连接 二、例行性工作1、单一执行的例行性工作2、循环执行的例行性工作 三、书写定时任务的注意事项四、系统级别的计划任务五、实验1、实验一&#xff1a;编写脚本tes…...

服务器数据库中了360后缀勒索病毒怎么办?360后缀勒索病毒的加密形式

随着信息技术的发展&#xff0c;企业的计算机服务器数据库变得越来越重要。然而&#xff0c;在数字时代&#xff0c;网络上的威胁也日益增多。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的计算机服务器遭到了360后缀勒索病毒的攻击&#xff0c;导致服务器内的所有…...

期权就是股指期货吗,哪个好做一点?

近年来&#xff0c;场内ETF期权产品不断扩大&#xff0c;越来越多的投资者有投资期权的想法。当我们看到期权时&#xff0c;我们会不知不觉地想到期货&#xff0c;虽然期货与期权只有一个字的区别&#xff0c;但实际上有很大的不同&#xff0c;那么期权就是股指期货吗&#xff…...

week32

本周目标&#xff1a; Belady现象的解释 操作系统 计组IO/MM chapter 刷力扣 ubuntu磁盘/网络/命令行进阶*1 tarball之类的使用 Question 大数据系统实验要学吗&#xff1f; 据说课讲得不好这是一门类似数据库的课程——大数据之hadoop / hive / hbase 的区别是什么&a…...

【数据库】P1 数据库基本常识

数据库基本常识 数据库 ≠ 数据库管理系统表&#xff08;Table&#xff09;SQL是什么 数据库 ≠ 数据库管理系统 数据库是保存有组织的数据的容器&#xff0c;数据库称为 DB&#xff08;DataBase&#xff09;&#xff1b;数据库管理系统是创建和操纵数据库的软件&#xff0c;数…...

c语言——计算两个数的乘积

//计算两个数的乘积 #include<stdio.h> #include<stdlib.h> int main() {double firstNumber,secondNumber,product;printf("两个浮点数&#xff1a;");scanf("%lf,%lf",&firstNumber,&secondNumber);productfirstNumber*secondNumber…...

单机模型并行最佳实践

单机模型并行最佳实践 模型并行在分布式训练技术中被广泛使用。 先前的帖子已经解释了如何使用 DataParallel 在多个 GPU 上训练神经网络&#xff1b; 此功能将相同的模型复制到所有 GPU&#xff0c;其中每个 GPU 消耗输入数据的不同分区。 尽管它可以极大地加快训练过程&…...

编程练习(3)

一.选择题 第一题&#xff1a; 函数传参的两个变量都是传的地址&#xff0c;而数组名c本身就是地址&#xff0c;int型变量b需要使用&符号&#xff0c;因此答案为A 第二题&#xff1a; 本题考察const修饰指针变量&#xff0c;答案为A,B,C,D 第三题&#xff1a; 注意int 型变…...

PyTorch学习笔记(十三)——现有网络模型的使用及修改

以分类模型的VGG为例 vgg16_false torchvision.models.vgg16(weightsFalse) vgg16_true torchvision.models.vgg16(weightsTrue) 设置为 False 的情况&#xff0c;相当于网络模型中的参数都是初始化的、默认的设置为 True 时&#xff0c;网络模型中的参数在数据集上是训练好…...

Python爬虫的scrapy的学习(学习于b站尚硅谷)

目录 一、scrapy  1. scrapy的安装  &#xff08;1&#xff09;什么是scrapy  &#xff08;2&#xff09;scrapy的安装 2. scrapy的基本使用  &#xff08;1&#xff09;scrap的使用步骤  &#xff08;2&#xff09;代码的演示 3. scrapy之58同城项目结构和基本方法&…...

“深入解析JVM:揭秘Java虚拟机的工作原理“

标题&#xff1a;深入解析JVM&#xff1a;揭秘Java虚拟机的工作原理 摘要&#xff1a;本文将深入解析Java虚拟机&#xff08;JVM&#xff09;的工作原理&#xff0c;探讨其内部结构和运行机制。我们将介绍JVM的组成部分、类加载过程、内存管理、垃圾回收、即时编译等关键概念&…...

【数据结构与算法】十大经典排序算法-归并排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…...

基于深度学习创建-表情符号--附源码

表情符号深度学习概述 如今,我们使用多种表情符号或头像来表达我们的心情或感受。它们充当人类的非语言线索。它们成为情感识别、在线聊天、品牌情感、产品评论等的关键部分。针对表情符号驱动的故事讲述的数据科学研究不断增加。 从图像中检测人类情绪非常流行,这可能是由…...

.netcore grpc的proto文件字段详解

一、.proto文件字段概述 grpc的接口传输参数都是根据.proto文件约定的字段格式进行传输的grpc提供了多种类型字段&#xff1b;主要包括标量值类型&#xff08;基础类型&#xff09;、日期时间、可为null类型、字节、列表、字典、Any类型&#xff08;任意类型&#xff09;、One…...

带你了解建堆的时间复杂度

目录 用向上调整建堆的时间复杂度 1.向上调整建堆的时间复杂度O(N*logN) 2.数学论证 3.相关代码 用向下调整建堆的时间复杂度 1.建堆的时间复杂度为O(N) 2.数学论证 3.相关代码 完结撒花✿✿ヽ(▽)ノ✿✿ 博主建议:面试的时候可能会被面试官问到建堆时间复杂度的证明过…...

人工智能原理(6)

目录 一、机器学习概述 1、学习和机器学习 2、学习系统 3、机器学习发展简史 4、机器学习分类 二、归纳学习 1、归纳学习的基本概念 2、变型空间学习 3、归纳偏置 三、决策树 1、决策树组成 2、决策树的构造算法CLS 3、ID3 4、决策树的偏置 四、基于实例的学习…...

单片机模块化编程文件创建流程

一、在工程文件夹下创建一个新的文件夹&#xff0c;命名为“ModulesCodesFiles”&#xff0c;译为“模块化代码文件”&#xff0c;用于存放所有模块化代码文件。 二、在“ModulesCodesFiles”文件夹下为每个模块创建一个新的文件夹&#xff0c;命名为模块的名称&#xff0c;例…...

docker image

docker image 1. 由来 docker image是Docker容器管理工具中的一个命令&#xff0c;用于管理和操作Docker镜像。 2. 常见五种示例命令和说明 以下是docker image的常见示例命令及其说明&#xff1a; 示例一&#xff1a;列出所有镜像 docker image ls描述&#xff1a;使用d…...

力扣75——单调栈

总结leetcode75中的单调栈算法题解题思路。 上一篇&#xff1a;力扣75——区间集合 力扣75——单调栈 1 每日温度2 股票价格跨度1 - 2 解题总结 1 每日温度 题目&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &…...

Webpack和Parcel详解

构建工具和打包器是在开发过程中帮助组织、优化和打包项目的工具。它们可以处理依赖管理、资源优化、代码转换等任务&#xff0c;从而使开发流程更高效。以下是关于构建工具和打包器的一些指导&#xff1a; **Webpack&#xff1a;** Webpack 是一个功能强大的模块打包器&#…...

linux系统服务学习(六)FTP服务学习

文章目录 FTP、NFS、SAMBA系统服务一、FTP服务概述1、FTP服务介绍2、FTP服务的客户端工具3、FTP的两种运行模式&#xff08;了解&#xff09;☆ 主动模式☆ 被动模式 4、搭建FTP服务&#xff08;重要&#xff09;5、FTP的配置文件详解&#xff08;重要&#xff09; 二、FTP任务…...

7.原 型

7.1原型 【例如】 另外- this指向&#xff1a; 构造函数和原型对象中的this都指向实例化的对象 7.2 constructor属性 每个原型对象里面都有个constructor属性( constructor构造函数) 作用&#xff1a;该属性指向该原型对象的构造函数 使用场景: 如果有多个对象的方法&#…...

【图像分类】理论篇(2)经典卷积神经网络 Lenet~Resenet

目录 1、卷积运算 2、经典卷积神经网络 2.1 Lenet 网络构架 代码实现 2.2 Alexnet 网络构架 代码实现 2.3 VGG VGG16网络构架 代码实现 2.4 ResNet ResNet50网络构架 代码实现 1、卷积运算 在二维卷积运算中&#xff0c;卷积窗口从输入张量的左上角开始&#xff…...

C++系列-内存模型

内存模型 内存模型四个区代码区全局区栈区堆区内存开辟和释放在堆区开辟数组 内存模型四个区 不同区域存放的数据生命周期是不同的&#xff0c;更为灵活。 代码区&#xff1a;存放函数体的二进制代码&#xff0c;操作系统管理。全局区&#xff1a;存放全局变量&#xff0c;常…...

[管理与领导-30]:IT基层管理者 - 人的管理 - 向上管理,管理好你的上司,职业发展事半功倍。什么样的上司不值得跟随?

目录 前言&#xff1a; 一、什么是向上管理 二、为什么要向上管理 三、如何进行向上管理 四、向上管理的注意事项 五、向上管理的忌讳 六、向上管理常犯的错 七、如何帮助上司解决他关心的问题 7.1 如何帮助上司解决他关心的问题 7.2 如何帮助上司降低压力 八、什么…...

Java进阶篇--迭代器模式

目录 同步迭代器&#xff08;Synchronous Iterator&#xff09;&#xff1a; Iterator 接口 常用方法&#xff1a; 注意&#xff1a; 扩展小知识: 异步迭代器&#xff08;Asynchronous Iterator&#xff09;&#xff1a; 常用的方法 注意&#xff1a; 总结&#xff1a…...

【CAM】CAM(Class Activation Mapping)——可视化CNN的特征定位

文章目录 一、CAM(Class Activation Mapping)二、CAM技术实现2.1 网络修改2.2 微调2.2 特征提取 三、总结Reference 完整代码见Github &#xff1a;https://github.com/capsule2077/CAM-Visualization &#xff0c;如果有用可以点个Star&#xff0c;谢谢&#xff01; 一、CAM(C…...

Maven教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Maven 是一款基于 Java 平台的项目管理和整合工具&#xff0c;它将项目的开发和管理过程抽象成一个项目对象模型&#xff08;POM&#xff09;。开发人员只需要做一些简单的配置&#xff0c;Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。Maven 是…...

Gof23设计模式之模板方法模式

1.定义 定义一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类中&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 2.结构 模板方法&#xff08;Template Method&#xff09;模式包含以下主要角色&#xff1a; 抽象类&#xff0…...

springBoot 配置文件 spring.resources.add-mappings 参数的作用

在Spring Boot应用中&#xff0c;spring.resources.add-mappings参数用于控制是否将特定路径的资源文件添加到URL路径映射中。 默认情况下&#xff0c;该参数的值为true&#xff0c;即会自动将静态资源&#xff08;例如CSS、JavaScript、图片等&#xff09;的URL路径添加到Spr…...

《Java极简设计模式》第03章:工厂方法模式(FactoryMethod)

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 源码地址&#xff1a;https://github.com/binghe001/java-simple-design-patterns/tree/master/j…...

C++11并发与多线程笔记(11) std::atomic续谈、std::async深入谈

C11并发与多线程笔记&#xff08;11&#xff09; std::atomic续谈、std::async深入谈 1、std::atomic续谈2、std::async深入理解2.1 std::async参数详述2.2 std::async和std::thread()区别&#xff1a;2.3 async不确定性问题的解决 1、std::atomic续谈 #include <iostream&…...

React快速入门

最近需要学到react&#xff0c;这里进行一个快速的入门&#xff0c;参考react官网 1.创建和嵌套组件 react的组件封装是个思想&#xff0c;我这里快速演示代码&#xff0c;自己本身也不太熟悉。 代码的路径是src底下的App.js function MyButton() {return (<button>I…...

windows权限维持—SSPHOOKDSRMSIDhistorySkeletonKey

windows权限维持—SSP&HOOK&DSRM&SIDhistory&SkeletonKey 1. 权限维持介绍1.1. 其他 2. 基于验证DLL加载—SPP2.1. 操作演示—临时生效2.1.1. 执行命令2.1.2. 切换用户 2.2. 操作演示—永久生效2.2.1. 上传文件2.2.2. 执行命令2.2.3. 重启生效 2.3. 总结 3. 基…...

CSS 两栏布局和三栏布局的实现

文章目录 一、两栏布局的实现1. floatmargin2. flaotBFC3. 定位margin4. flex 布局5. grid布局 二、三栏布局的实现1. float margin2. float BFC3. 定位 margin(或者定位BFC)4. flex布局5. 圣杯布局6. 双飞翼布局 一、两栏布局的实现 两栏布局其实就是左侧定宽&#xff0c;…...

消息中间件相关面试题

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱发博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;社区论坛&#xff1a;希望大家能加入社区共同进步…...

成集云 | 电子签署集成腾讯云企业网盘 | 解决方案

源系统成集云目标系统 方案介绍 电子签署是通过电子方式完成合同、文件或其他文件的签署过程。相较于传统的纸质签署&#xff0c;电子签署具有更高效、更便捷、更安全的优势。 在电子签署过程中&#xff0c;使用电子签名技术来验证签署者的身份并确保签署文件的完整性。电子…...

提升大数据技能,不再颓废!这6家学习网站是你的利器!

随着国家数字化转型&#xff0c;大数据领域对人才的需求越来越多。大数据主要研究计算机科学和大数据处理技术等相关的知识和技能&#xff0c;从大数据应用的三个主要层面&#xff08;即数据管理、系统开发、海量数据分析与挖掘&#xff09;出发&#xff0c;对实际问题进行分析…...

uniapp开发小程序-有分类和列表时,进入页面默认选中第一个分类

一、效果&#xff1a; 如下图所示&#xff0c;进入该页面后&#xff0c;默认选中第一个分类&#xff0c;以及第一个分类下的列表数据。 二、代码实现&#xff1a; 关键代码&#xff1a; 进入页面时&#xff0c;默认调用分类的接口&#xff0c;在分类接口里做判断&#xff…...

小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用

一、官方文档找到uni-icons uni-app官网 二、下载插件 三、点击“打开HBuildX” 四、选择要安装的项目 五、勾选要安装的插件 六、安装后&#xff0c;项目插件目录 根目录uni_modules目录下增加uni-icons、uni-scss 七、引入组件&#xff0c;使用组件 <uni-icons type&qu…...

PHP中in_array()函数用法详解

in_array() 函数是PHP中常用的数组函数之一&#xff0c;用于搜索数组中是否存在指定的值。 语法 bool in_array ( mixed $needle , array $haystack [, bool $strict FALSE ] ) 参数描述needle必需。规定要在数组搜索的值。haystack必需。规定要搜索的数组。strict可选。如…...

热电联产在综合能源系统中的选址定容研究(matlab代码)

目录 1 主要内容 目标函数 程序模型 2 部分代码 3 程序结果 1 主要内容 该程序参考《热电联产在区域综合能源系统中的定容选址研究》&#xff0c;主要针对电热综合能源系统进行优化&#xff0c;确定热电联产机组的位置和容量&#xff0c;程序以33节点电网和17节点热网为例…...

校园网安全风险分析

⒈物理层的安全风险分析 网络的物理安全风险主要指网络周边环境和物理特性引起的网络设备和线路的不可用 , 而 造成网络系统的不可用。我们在考虑校园网络安全时&#xff0c;首先要考虑物理安全风险&#xff0c;它是整个 网络系统安全的前提。物理安全风险有&#xff1a;设备…...

kafka--kafka的基本概念-topic和partition

一、kafka的基本概念-topic和partition 1、topic &#xff08;主题 &#xff09; topic是逻辑概念 以Topic机制来对消息进行分类的&#xff0c;同一类消息属于同一个Topic&#xff0c;你可以将每个topic看成是一个消息队列。 生产者&#xff08;producer&#xff09;将消息发…...

【LVS】3、LVS+Keepalived群集

为什么用它&#xff0c;为了做高可用 服务功能 1.故障自动切换 2.健康检查 3.节点服务器高可用-HA Keepalived的三个模块&#xff1a; core&#xff1a;Keepalived的核心&#xff0c;负责主进程的启动、维护&#xff1b;调用全局配置文件进行加载和解析 vrrp&#xff1a;实…...

对前端PWA应用的部分理解和基础Demo

一、什么是PWA应用&#xff1f; 1、PWA简介 ​ 渐进式Web应用&#xff08;Progressive Web App&#xff09;&#xff0c;简称PWA&#xff0c;是 Google 在 2015 年提出的一种使用web平台技术构建的应用程序&#xff0c;官方认为其核心在于Reliable&#xff08;可靠的&#xf…...

CSGO饰品价格会一直下跌吗?市场何时止跌回升?

最后一届巴黎major终于落下帷幕&#xff0c;Vitality小蜜蜂2-0战胜GL成功赢下本次Major冠军&#xff0c;也是首次夺得Major冠军&#xff01;有人欢喜有人忧啊&#xff0c;csgo搬砖的饰品商人们一点也高兴不起来。 4月-5月&#xff0c;csgo皮肤饰品已持续走低快两个月了。手里满…...

线程池原理

一、线程池的定义 线程池&#xff0c;按照配置参数&#xff08;核心线程数、最大线程数等&#xff09;创建并管理若干线程对象&#xff0c;没有任务的时候&#xff0c;这些线程都处于等待空闲状态。如果有新的线程任务&#xff0c;就分配一个空闲线程执行。如果所有线程都处于…...

拷贝构造函数

1. 拷贝构造函数是构造函数的一个重载形式。 2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用&#xff0c;使用传值方式编译器直接报错&#xff0c; 因为会引发无穷递归调用。 class Date { public:Date(int year 1900, int month 1, int day 1){_year year;_mont…...

数据库: MySQL安装部署、主从

单机部署 mkdir -p /opt/soft/archive cd /opt/soft/archivewget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm yum install -y mysql80-community-release-el7-7.noarch.rpm yum-config-manager --enable mysql80-community yum install -y …...