【网络安全】服务基础第二阶段——第四节:Linux系统管理基础----Linux网络与日志服务器

目录

一、Linux基础知识

1.1 Linux系统常用目录及命令

1.1.1 常用目录

1.1.2 常用命令

1.1.3 Linux系统文件和命令

1.1.3 文件操作

1.1.4 文件打包和压缩

1.1.5 Linux系统包管理

1.1.6 RPM命令

二、YUM

2.1 YUM

2.1.1 YUM工具

2.1.2 YUM配置

2.2 YUM源安装前置准备

2.2.1 YUM源安装

2.2.2 手动配置yum源

2.2.3 网络配置yum

2.3 Kali Linux安装

三、Linux网络

3.1 网络地址配置

3.1.1 桥接模式配置

3.1.2 设置网络配置重启后仍生效

3.2 路由转发功能

3.2.1 windows及服务机网卡配置

3.2.2 kali网卡配置

3.2.3 开启路由

四、日志与进程

4.1 进程查看

4.1.1 查看进程

4.1.2 进程查看top命令详解

4.1.3 制作死循环脚本并杀死进程

4.2 计划任务

4.2.1 使用at来设置一次性任务

4.2.2 设置一个一次性的计划任务

4.2.3 使用cron来设置周期性任务

4.2.4 配置周期性计划任务


一、Linux基础知识
1.1 Linux系统常用目录及命令
1.1.1 常用目录
  1. /bin:存放基本二进制文件,即系统命令
  2. /sbin:存放系统二进制文件,通常是系统管理员使用的命令。
  3. /etc:存放系统配置文件
  4. /dev:包含设备文件。
  5. /proc:虚拟文件系统,包含系统和进程信息
  6. /var:包含经常变化的文件,如日志文件。
  7. /tmp临时文件目录
  8. /usr:用户相关的应用程序和文件。
  9. /home:用户的主目录。
  10. /root:系统管理员的用户主目录。
1.1.2 常用命令
  1. ls:列出目录内容。
  2. cd:改变当前目录。
  3. pwd:打印当前工作目录。
  4. cp:复制文件或目录。
  5. mv:移动或重命名文件/目录。
  6. rm:删除文件或目录。
  7. mkdir:创建新目录。
  8. rmdir:删除空目录。
  9. chmod:更改文件或目录的权限。
  10. chown:更改文件或目录的所有者。
  11. touch:创建新文件或更改现有文件的时间戳。
  12. cat:查看文件内容。
  13. more 或 less:分页查看文件内容。
  14. grep:搜索文件内容。
  15. find:在目录树中查找文件。
  16. which:查找并显示给定命令的路径。
  17. whereis:定位二进制、源和手册页文件的位置。
  18. ssh:安全地登录到远程机器。
  19. ifconfig 或 ip:配置或显示网络接口的信息。
  20. ping:测试网络连接。
  21. netstat:显示网络状态。
  22. tar:打包和压缩文件。
  23. du:检查磁盘使用情况。
  24. df:报告文件系统的磁盘空间使用情况
1.1.3 Linux系统文件和命令
  • /etc/passwd:存储用户账户信息。
  • /etc/shadow:存储用户密码哈希。
  • /etc/group:存储组信息。
  • catmorelesshead:用于查看文件内容。
  • tail -f:实时跟踪文件更新。
  • grep:搜索文件中的文本。
  • find:查找文件系统中的文件
1.1.3 文件操作
  • grep 命令可以用来过滤文件内容或命令结果
  • find 命令可以用来查找特定名称的文件或目录
1.1.4 文件打包和压缩
  • gzip 和 bzip2 是压缩工具。
  • tar 命令用于打包和压缩文件,例如创建和解压 .tar.gz文件
1.1.5 Linux系统包管理
  • 源码包允许用户自定义安装位置和功能,而封装包(如 RPM 或 DEB)简化了安装过程。
  • RPM 用于基于 Red Hat 的系统(如 CentOS),DEB 用于基于 Debian 的系统(如 Ubuntu)
1.1.6 RPM命令
  • rpm -qa:列出已安装的包。
  • rpm -qpi:查看软件包信息。
  • rpm -qpl:查看软件包安装位置。
  • rpm -ivh:安装 RPM 包。
  • rpm -qf:查询文件属于哪个 RPM 包。
  • rpm -e:删除 RPM 包
二、YUM
2.1 YUM

YUM(Yellowdog Updater Modified)是一个在基于Red Hat的Linux发行版中广泛使用的软件包管理器,如CentOS、Fedora、RHEL(Red Hat Enterprise Linux)等。YUM提供了自动化的软件包安装、更新和卸载功能,同时还能自动解决依赖性问题。

2.1.1 YUM工具
  • YUM 用于依赖性管理,自动处理软件包的安装和卸载。
  • yum install:安装软件包。
  • yum clean all:清除缓存。
  • yum makecache:刷新缓存。
2.1.2 YUM配置
  • YUM 可以通过编辑 /etc/yum.repos.d/ 目录下的 .repo文件来配置网络源。
  • 可以使用 wget 命令下载并替换 .repo 文件以更改 YUM 源
2.2 YUM源安装前置准备

在此之前,我们先来解决一个问题:为什么YUM源安装涉及到依赖关系?

Linux系统中的软件包往往依赖于其他软件包,这意味着一个软件包可能需要特定的库文件或其他软件包才能正常工作。YUM通过维护一个依赖关系表(通常称为repodata),来确保在安装、更新或删除软件包时,所有依赖性都能得到满足或正确处理

当用户通过YUM安装一个软件包时,YUM会自动检查该软件包的依赖性,并尝试安装所有必需的依赖包。同样,当卸载或更新软件包时,YUM也会检查并解决由此产生的依赖性问题,例如卸载不再需要的依赖包或更新依赖包

2.2.1 YUM源安装

yum工具可以实现通过依赖关系表进行软件的卸载和安装

yum有两种配置方式:本地配置(通过光盘)、网络配置(通过镜像站)

yum的配置文件一般在etc下,我们进入etc,使用ls列出文件,可以看到 yum.repos.d,这就是yum的配置文件


我们使用cat进入Base文件,查看内容

在yum文件配置中有很多内容,现在我们想要自己配置yum,例如定制一个我们自己的文件,接下来是操作步骤。

2.2.2 手动配置yum源

目前我们已知,原本有很多关于yum的配置文件,既然我们现在要手动安装,就要先把旧的文件放到一边。

使用mkdir创建一个文件夹,用于存放旧的配置文件,使用mv命令将旧文件统统移入文件夹中,这时再使用ls查看,配置目录下就只剩一个用于存放旧文件的文件夹了

清除掉了之前的障碍,现在我们可以开始手动配置了,先来创建一个yum配置文件,便于之后往里写东西。使用vim创建配置文件,注意:名称要规范,命名和之前相同,以.repo结尾!

vim CentOS-Base.repo

 yum安装有几个点:

  • 编辑该软件的配置文件
  • 配置文件有严格的格式,格式错误无法使用
  • yum有专门的命令

我们使用cat查看原来的CentOS-Base.repo文件,安装格式严格编写新的配置文件

注意点:

  • 后缀为.repo
  • [标签]
  • name=描述
  • baseurl=本地资源定位符
  • gpgcheck=1为打开,0为关闭


这几行配置定义了一个 YUM 仓库,允许 YUM 从指定的 URL 下载软件包,并且禁用了 GPG 校验。这种配置通常用于设置本地仓库或者指向特定的镜像站点,以便 YUM 可以下载和安装软件包。至此,yum手动配置完成

2.2.3 网络配置yum

现在我们来看如何使用镜像站配置yum源。在此我使用了华为开源镜像站

选择CentOS7,出现如下页面,在此也告诉了我们配置方法

首先,我们需要下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下,执行它给我们的命令

(在此之前,使用rm -rf CentOS-Base.repo 清除之前手动配置的yum文件,以免造成混乱)

[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
--2024-09-09 14:04:36--  https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
Resolving mirrors.huaweicloud.com (mirrors.huaweicloud.com)... 120.46.63.139, 124.70.61.162, 123.249.118.101, ...
Connecting to mirrors.huaweicloud.com (mirrors.huaweicloud.com)|120.46.63.139|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’[ <=>                  ] 1,811       --.-K/s   in 0s      2024-09-09 14:04:37 (154 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [1811][root@localhost yum.repos.d]# ls
bak  CentOS-Base.repo

下载完成,使用ls查看,出现新的配置文件,使用cat或vim查看一下我们新下载的配置文件,里面也确实有完整的配置信息

之后再根据它给的步骤,清除缓存、刷新

至此,网络配置yum源我们也学会了,当然,除了华为镜像站,还有淘宝、阿里以及各大大学的镜像站,可自由选择。

2.3 Kali Linux安装

Kali与Linux有些许差别,手动配置较为繁琐,我们直接使用网络配置,同样找到华为镜像源的Kali-Images,根据上面的操作进行


与CentOS配置步骤类似,这里不多赘述

与yum有区别,在Kali中使用的命令是 apt-get ,但作用类似。apt-get 是 Debian 及其衍生发行版(如 Ubuntu、Kali Linux 等)中的命令行工具,用于处理软件包。它是 Advanced Package Tool(APT)的一部分,用于安装、更新、升级、卸载和管理软件包。

三、Linux网络
3.1 网络地址配置

首先我们来了解一下虚拟机中网络的不同设置:

  • NAT:NAT允许多个设备共享一个公共IP地址来访问互联网。它在内部私有网络和外部公共网络(如互联网)之间转换IP地址,这样内部设备就可以隐藏自己的真实IP地址。
  • 桥接:在桥接模式下,网络设备(如交换机或路由器)会根据MAC地址(物理地址)来转发数据包。它不会改变数据包的源或目的IP地址。桥接模式又分为自动检测模式和Wi-Fi模式
  1. 自动检测模式:在计算机网络中,自动检测通常指的是设备(比如笔记本电脑或智能手机)自动寻找可用的网络连接,比如Wi-Fi网络,并提示用户是否要连接
  2. WiFi:Wi-Fi是一种无线网络技术,允许设备在一定范围内无线连接到网络
  • 路由:路由是指将数据包从一个网络传输到另一个网络的过程。路由器是专门用于路由的设备,它们根据数据包的目的IP地址来决定将其发送到哪个方向。
  • 隧道:隧道模式就像是在地下挖一条通道,让数据包可以从一个网络穿越到另一个网络,即使这两个网络在物理上是分开的。
3.1.1 桥接模式配置

把虚拟机设置为桥接模式,就是设置乌力吉与虚拟机处于同一网段,可以相互访问

这里的重点是把虚拟机网段、网关设置的与物理机一致。我的电脑是Mac所以使用netstat命令,windows可以使用ipconfig查看

这表明,物理机的默认网关是172.20.10.1,并且这个歌网关与网络接口en0相关联,继续使用ifconfig查看IP地址,显示IP地址为172.20.10.4

接下来,我们选择虚拟机的网络连接类型为“桥接模式”

进入虚拟机的设置(Setting),点击右边的齿轮,进入设置模式,选择IPv4


配置我们之前得到的ip地址与网关,之后保存应用设置,断开再连接(拔插网线),这样我们就成功转换到了桥接模式,试着ping本机IP和百度,可以看到已连通。


这样,我们就完成了从NAT模式到桥接模式的转换

除了能在图形化界面配置IP,我们还可以使用:ip address add命令,使用 ip address help 可以查看添加添加ip地址的命令格式,根据这个格式我们去添加我们的ip地址

ip address add 192.168.1.100/24 dev ens33
//这里 192.168.1.100 是你选择的IP地址,/24 是子网掩码,ens33 是你的网卡设备名称

使用ip route add来添加默认网关

ip route add default via 192.168.1.1
//这里 192.168.1.1 应该是你的路由器或网关的IP地址
3.1.2 设置网络配置重启后仍生效

当然,这里的IP地址配置是“一次性的”,如果想让配置变为“永久”,我们可以编写开机自启机脚本。进入路径:

cd /etc/rc.d
//进入rc.d目录,使用vim编辑器来编写rc.local文件ip address add x.x.x.x/24 dev ens33
ip route add default via x.x.x.x
echo "nameserver 114.114.114.114" >> /etc/rc.d/rc.local

同样,我们还可以配置网卡文件,让我们配置的网络永久生效。进入目录 /etc/sysconfig/network-scripts/ifcfg-ens33,这个ifcfg-ens33就是我们要修改的网卡文件

配置完成后:

systemctl status network
systemctl status NetworkManager
systemctl restart NetworkManager 
//使用上述命令重启网卡

通过上述两种方法,配置网卡和配置静态IP,可以保证重启后仍然有效

3.2 路由转发功能

路由转发是网络通信中的一个重要概念,它指的是将数据包从源主机通过一个或多个中间节点(路由器或网关)传送到目的主机的过程。

3.2.1 windows及服务机网卡配置

本实验我们需要开启两天虚拟机,一台客户机和一台服务机,客户机我使用Windows7,服务机我使用CentOS 7,其中,客户机连接vm2网卡,服务机连接vm3

首先来配置客户机的IP地址,和之前一样,从网络处直接修改

现在,我们再来配置CentOS的IP及网关,这时就相当于“照着答案写题目”,设置其ens 33的IP地址为192.168.2.254(即客户机的网关),设置其ens 34的IP为172.16.2.254(之后作为172与192连通用),两个都不设置网关。至此,一座桥梁就快要建成了。

同理,上面的步骤既可以、通过命令来修改网卡文件来完成,也可以直接进入Setting图形化界面完成

3.2.2 kali网卡配置

另一台客户机,我这里使用Kali完成,kali的网络配置与windows和CentOS略有不同,一种方法就是使用前面提到过的 ip address 命令完成,但这种方法是“一次性的”,这里我们介绍另一种方法:直接改网卡的配置


我们可以看到,eth0处于up(开启)状态,这证明我们可以修改他的配置。我们cd到/etc下的network,找到interfaces文件,这就是我们要修改的文件了


仿照着上面的格式,我们添加eth0的IP,子网掩码和网关,编辑完成后保存并退出,之后使用systemctl restart networking.service 重启网卡,正式刷新启用配置。

3.2.3 开启路由

现在,我们来开启路由,让两台客户机能够正式通信。

开启路由转发功能有两种方法:一种是修改/proc/sys/net/ipv4/ip_forward,在未作修改前我们使用cat看一下ip_forward,发现其内容为“0”,这代表路由功能未启用/已关闭。现在我们要做的就是将0改为1。

这里注意:直接使用vim编辑器无法改变其内容,因为这个文件在/proc目录下,而proc的内容并不是存储在硬盘中,而是保存在内存中,这里我们使用echo命令来修改

echo 1 > ip_forward

修改之后,路由开启,现在两个网段的客户机可以相互ping通了!

第二种开启路由的方法,也是永久生效的方法(上一种方法重启后失效),是修改内核配置文件

进入到/etc/sysctl.conf,修改net.ipv4.ip_forward = 1,之后运行命令sysctl -p使配置立即生效。两种方法大同小异

在操作系统层面,路由转发涉及到以下几个关键部分:

  • 路由表:每个网络设备(如路由器、网关或支持路由功能的计算机)都有一张路由表,它包含了决定数据包转发路径的规则。路由表中通常包含目标网络、子网掩码、网关(下一跳地址)、接口等信息。
  • 静态路由:由网络管理员手动配置的路由规则。静态路由不随网络拓扑的变化而自动调整,适用于小型或稳定的网络环境。
  • 动态路由:通过动态路由协议(如RIP、OSPF、BGP等)自动学习和分发的路由信息。动态路由能够适应网络拓扑的变化,适用于大型或经常变化的网络。
  • 路由转发决策:当一个数据包到达网络设备时,该设备会根据路由表中的信息决定如何处理这个数据包。如果目的地在直接连接的网络上,数据包将被直接发送到目标;如果目的地在远程网络上,数据包将被发送到指定的网关或下一跳地址。
  • NAT(网络地址转换):在某些情况下,路由转发还涉及到NAT,这是一种将私有(内部)IP地址转换为公共(外部)IP地址的技术,常用于Internet连接和防火墙配置中。
四、日志与进程
4.1 进程查看

在Linux系统中,查看进程和设置计划任务是系统管理的常见任务。

4.1.1 查看进程
  • ps aux:列出所有当前执行的进程
  • ps -u username:仅列出特定用户的进程
  • top:实时显示系统进程信息
  • pgrep -f httpd:根据进程名查找进程
  • pstree:以树状图显示进程,包括父子关系
4.1.2 进程查看top命令详解

在终端输入命令 top ,得到如下图

顶部信息:

  • top - 09:44:08top 命令执行的时间。
  • up 8:50:系统运行时间,表示系统已经运行了8小时50分钟。
  • 2 users:当前有2个用户登录系统。
  • load average: 0.02, 0.04, 0.05:系统负载平均值,分别表示过去1分钟、5分钟和15分钟的平均负载。这些值越低,表示系统负载越轻

任务信息:

  • Tasks: 218 total:总共有218个任务。
  • 1 running:有1个任务正在运行。
  • 217 sleeping:有217个任务处于睡眠状态。
  • 0 stopped:没有任务处于停止状态。
  • 0 zombie:没有僵尸进程。

CPU和内存信息:

  • %Cpu(s): 1.0 us:用户空间占用CPU的百分比为1.0%。
  • 0.3 sy:系统空间占用CPU的百分比为0.3%。
  • 0.0 ni:改变过优先级的进程占用CPU的百分比为0.0%。
  • 98.7 id:CPU空闲百分比为98.7%。
  • 0.0 wa:等待输入输出的CPU时间百分比为0.0%。
  • 0.0 hi:硬件中断的CPU时间百分比为0.0%。
  • 0.0 si:软件中断的CPU时间百分比为0.0%

在top命令的输出中,通常包含关于进程状态的信息:

  • stopped:在 top 命令的输出中,stopped 指的是被停止(或暂停)的进程数量。这些进程因为接收到停止信号(如 SIGSTOP)而暂时挂起,直到它们收到继续信号(如 SIGCONT)才会恢复运行。在 top 的 "Tasks" 部分,stopped 列显示了当前被停止的进程数量
  • Jobs:在 top 命令的上下文中,jobs 通常不直接出现。然而,在 shell 环境中,jobs 命令用于列出当前会话中的作业列表,包括后台作业的状态。作业是指在 shell 中启动的进程,可以是前台或后台运行。在 top 命令中,你不会直接管理作业,但你可以通过 top 查看所有进程的状态,包括那些由 shell 作业创建的进程
  • fg:fg 是 shell 中的一个命令,用于将后台作业调到前台运行。在 top 命令中,没有直接的 fg 命令。但是,如果你在使用 top 命令时按下 Ctrl + Z,可以将 top 命令本身暂停并放入后台作业。然后,你可以使用 fg 命令将 top 从后台调回前台继续运行
4.1.3 制作死循环脚本并杀死进程

首先我们在tmp目录下创建一个死循环脚本,用于占满系统内存


在编辑保存死循环脚本后,使用chmod +x test.sh为其添加执行权限,这样就可以运行脚本了 

现在我们来了解一下kill命令:

kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的。我们来看一下 man page 对它的解释:kill - send a signal to a process.从官方的解释不难看出,kill 是向进程发送信号的命令。当然我们可以向进程发送一个终止运行的信号,此时的 kill 命令才是名至实归。事实上如果我们不给 kill 命令传递信号参数,它默认传递终止进程运行的信号给进程!这是 kill 命令最主要的用法

一般情况下,终止一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就得用 kill 命令来终止。我们会先使用 ps、top 等命令获得进程的 PID,然后使用 kill 命令来杀掉该进程

我们切换到tmp目录下执行死循环脚本,屏幕上开始疯狂输出“U OVER”,我们在top中查看进程也可以看到,127350进程也就是我们的死循环脚本占用了大量的CPU,我们输入k(kill杀死进程),他提示我们输入要杀死的进程的PID,我们输入127350(这里即使不输入也会默认杀死最大的进程),之后提示选择信号,我们输入9(强制杀死)


之后我们发现,进程被杀死了,CUP也恢复了空闲,实验结束。


4.2 计划任务

在Linux系统中,计划任务通常是指定期执行特定命令或脚本的任务。Linux提供了多种工具来管理计划任务,最常用的是cron和at

4.2.1 使用at来设置一次性任务

at 命令用于安排一次性任务,即在将来的某个时间点执行一次命令。

要安排一个任务,可以使用如下格式:

echo "command-to-be-executed" | at time

例如,要在下午3点执行/usr/bin/update 命令,可以使用:

echo "/usr/bin/update" | at 3pm

要查看所有待执行的at任务,可以使用atq命令(at -l命令)

要删除一个 at 任务,可以使用 atrm 命令(at -r命令)加上任务号:

atrm task-number

at 命令用于安排在将来的某个时间点执行一次性任务。at 命令与 cron 类似,但主要用于不需要频繁执行的任务。

注意:

  • 要使用 at 命令,你可能需要确保 at 服务正在运行。你可以使用 systemctl start atd 来启动服务。
  • at -l 和 at -c 命令通常只有安排任务的用户或超级用户(root)可以使用。
  • 如果你想要删除某个 at 任务,可以使用 atrm 命令加上任务编号来删除

这些命令在管理一次性任务时非常有用,尤其是当你需要在特定时间执行某个操作,但又不想设置一个永久的 cron 任务时

4.2.2 设置一个一次性的计划任务

首先,在 /tmp 目录下创建一个脚本文件。例如,创建一个名为 test_script.sh 的脚本

cd /tmp
echo "#!/bin/bash" > test_script.sh
echo "echo 'This is a test script'" >> test_script.sh
echo "date" >> test_script.sh

赋予脚本执行权限:

chmod +x test_script.sh

使用at命令安排在将来某个时间点执行这个脚本。例如1分钟后

echo "/tmp/test_script.sh" | at now + 1 minute

可以看到,任务已经被添加,使用 -l查看任务编号为2

使用atrm 2(这里写你的任务编号)用于删除任务,最后,清理脚本文件

atrm 任务编号
rm /tmp/test_script.sh

4.2.3 使用cron来设置周期性任务

cron 是一个基于时间的作业调度器,它可以在指定时间自动执行任务。

要编辑当前用户的 crontab 文件,可以使用以下命令:

crontab -e
//这将打开一个编辑器,你可以在其中添加或修改计划任务

我们选择/etc目录下的crontab文件,这个文件即周期性计划配置文件,向我们展示了配置的格式

crontab 文件中的每行都代表一个计划任务,正如其所对应的那样,从前到后的*依次表示“分钟、小时、日、月、周”

例如,以下 crontab 条目每天凌晨2点执行 /usr/bin/update 命令:

0 2 * * * /usr/bin/update

要查看当前用户的 crontab,可以使用以下命令:crontab -l

要删除当前用户的 crontab 文件,可以使用以下命令:crontab -r

4.2.4 配置周期性计划任务

现在我们来做一个练习,设置每年的9月10日上午11点,每分钟备份一次到/tmp登陆日志

首先使用crontab -e打开当前用户的crontab 文件进行编辑

在编辑器中添加以下条目

*/1 11 10 9 * /path/to/your/backup_script.sh
//在这里,我的路径使用/tmp/backup_script.sh,根据你自己的路径调整
  • */1 分钟:每分钟
  • 11 小时:上午11点
  • 10 日:每月的第10天
  • 9 月:9月
  • * 周:不指定星期几,表示每天
  • /path/to/your/backup_script.sh 是你备份脚本的路径

之后保存并关闭编辑器。cron 会自动安装新的 crontab 并开始计划任务。

注意:确保你的备份脚本 /path/to/your/backup_script.sh 存在,并且具有执行权限。例如,你可以创建一个简单的备份脚本,如下所示:

#!/bin/bash
# 备份登陆日志到 /tmp
cp /var/log/lastlog /tmp/login.log.$(date +%Y%m%d%H%M%S)//之后赋予执行权限
chmod +x /path/to/your/backup_script.sh

 

确保 cron 服务正在运行。你可以使用以下命令检查 cron 服务的状态:

systemctl status crond

如果服务没有运行,可以使用命令启动:

systemctl start crond

可以手动测试cron任务是否能够正常运行:

echo "* * * * * /path/to/your/backup_script.sh" | crontab -

​​​​​​​

使用 echo "* * * * * /root/tmp/backup_script.sh" | crontab - 命令添加了一个 cron 任务,该任务会每分钟执行一次指定的脚本。系统响应 You have new mail in /var/spool/mail/root 表示 cron 任务已添加,并且可能已经执行了一次,因为输出和错误通常会发送到用户的邮件箱。

使用 -l命令列出当前执行的任务,确实有我们设置的周期性任务脚本。使用cat /var/spool/mail/root命令查看邮件文件,可以看到脚本输出重定向到文件,文件中出现新的内容,为脚本执行的日期时间,并且确实为每分钟刷新。


如果想要删除特定的cron任务,可以直接使用 -e 编辑crontab文件并删除响应的行。脚本文件则使用rm命令删除

​​​​​​​​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人的静力分析与动力学

参考链接&#xff1a;4-13刚体的惯性张量_哔哩哔哩_bilibili4-13刚体的惯性张量, 视频播放量 6540、弹幕量 2、点赞数 79、投硬币枚数 38、收藏人数 145、转发人数 23, 视频作者 每一天都应不同, 作者简介 ROS1是DCS,ROS2是FCS&#xff0c;相关视频&#xff1a;机器人动力学拉格…

(八) 初入MySQL 【主从复制】

案例概况 在企业应用中&#xff0c;成熟的业务通常数据量都比较大 单台MySQL在安全性、 高可用性和高并发方面都无法满足实际的需求 &#xff0c;所以需要配置多台主从数据库服务器以实现读写分离来满足需求 一、主从复制原理 1.1、 MySQL的复制类型 基于语句的复制(STATEME…

从0开始的算法(数据结构和算法)基础(十一)

回溯算法 什么是回溯算法 回溯算法&#xff0c;根据字面意思来理解这个算法是将每一步的操作可以进行回溯&#xff0c;实际上是对这个每一步的操作进行记录&#xff0c;确保可以返回上一步的操作&#xff0c;可能是对回溯操作之前的做一个复现&#xff0c;也有可能是可操作的回…

神经网络中的那些浮点数

模型进行需要大量显存和算力进行支持&#xff0c;精度越高需要的内存和算力也越多&#xff0c;本文将介绍在模型中使用的不同类型的浮点数。 FP32 (Float32)&#xff1a; • 精度和稳定性&#xff1a;FP32 提供 23 位尾数和 8 位指数的高精度 • 性能&#xff1a;尽管 FP32 是通…

学习大数据DAY56 业务理解和第一次接入

作业1 1 了解行业名词 ERP CRM OA MES WMS RPA SAAS 了解每个系统的功能和应用 ERP 系统&#xff0c;&#xff08;Enterprise Resource Planning&#xff0c;企业资源计划系统&#xff09;&#xff1a;ERP 系统 是一种用于管理企业各类资源的软件系统&#xff0c;包括生产管理…

极狐GitLab CI/CD 作业一直处于等待状态,如何解决?

本分分享 GitLab CI/CD Job 不工作的的故障排查方法&#xff1a;当 GitLab Runner 不接受 Job&#xff0c;Job 一直处于等待状态&#xff0c;如何解决此问题。 极狐GitLab 为 GitLab 在中国的发行版&#xff0c;中文版本对中国用户更友好。极狐GitLab 支持一键私有化部署&…

【Hot100】LeetCode—72. 编辑距离

目录 1- 思路题目识别动规五部曲 2- 实现⭐72. 编辑距离——题解思路 3- ACM 实现 原题链接&#xff1a;72. 编辑距离 1- 思路 题目识别 识别1 &#xff1a;两个字符串之间相互转换&#xff0c;增、删、替换 最少的操作次数 动规五部曲 1- 定义 dp 数组 dp[i][j] 代表&…

如何增加Google收录量?

想增加Google收录量&#xff0c;首先自然是你的页面数量就要多&#xff0c;但这些页面的内容也绝对不能敷衍&#xff0c;你的网站都没多少页面&#xff0c;谷歌哪怕想收录都没办法&#xff0c;当然&#xff0c;这是一个过程&#xff0c;持续缓慢的增加页面&#xff0c;增加网站…

11.5.软件系统分析与设计-面向对象的程序设计与实现

面向对象的程序设计与实现 设计模式 Java代码 C代码

神经网络案例实践之单层感知器求解-学习篇

二维线性分类问题 单层感知器作为线性分类器被广泛应用 问题分析&#xff1a; 首先给了五个输入样本&#xff0c;输入样本和位置信息如下所示&#xff0c;现在要学习一个模型&#xff0c;在二维空间中把两个样本分开&#xff0c;输入数据是个矩阵&#xff0c;矩阵中有五个样本…

手写排班日历

手写排班日历&#xff1a; 效果图&#xff1a; vue代码如下&#xff1a; <template><div class"YSPB"><div class"title">排班日历</div><div class"banner"><span classiconfont icon-youjiantou click&qu…

jmeter设置全局token

1、创建setup线程&#xff0c;获取token的接口在所有线程中优先执行&#xff0c;确保后续线程可以拿到token 2、添加配置原件-Http信息头管理器&#xff0c;添加取样器-http请求 配置好接口路径&#xff0c;端口&#xff0c;前端传参数据&#xff0c;调试一下&#xff0c;保证获…

影刀RPA实战:自动化同步商品库存至各大电商平台(二)

在当今的电商世界中&#xff0c;多平台运营已成为常态。商家需要在多个电商平台上维护商品库存的一致性&#xff0c;以确保顾客体验的流畅性和库存管理的高效性。运营人员每天面临的问题&#xff0c;就是把公司的商品库存数据&#xff0c;间断性的同步到电商平台上&#xff0c;…

简单比较 http https http2,我们要如何把http升级为https

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 什么是HTTP 超文本传输​​协议&#xff08;HTTP&#xff09;是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信&#xff0c;但它也…

C# 通过拖控件移动窗体

目录 引言一、通过控件事件移动窗体1、创建窗体界面2、添加控件事件3、添加代码 二、通过windowsAPI移动窗体1、 构建窗体和添加事件2、代码展示 三、其它方式 引言 在C#Form窗体设计中&#xff0c;如果我们不需要使用默认边框设计自己个性化的窗体&#xff08;FromBorderStyl…

2.关于Cloud各种组件的停更/升级/替换

目前主流的cloud组件 备注&#xff1a;黑色部分是springcloud社区原版&#xff0c;红色的是SpringCloud Alibaba。 服务注册与发现 Consul Alibaba Nacos 服务调用和负载均衡 LoadBalancer OpenFeign 分布式事务 Alibaba Seata 服务熔断和降级 Circuit Breaker Alibaba Sentine…

Golang使用ReverseProxy实现反向代理

目录 1.源码结构体 2.官方单机示例 3.使用示例 4.简单的http服务&#xff08;用于测试&#xff09; 1.源码结构体 type ReverseProxy struct {// Rewrite 必须是一个函数&#xff0c;用于将请求修改为要使用 Transport 发送的新请求。然后&#xff0c;其响应将原封不动地…

微软数据库的SQL注入漏洞解析——Microsoft Access、SQLServer与SQL注入防御

说明:本文仅是用于学习分析自己搭建的SQL漏洞内容和原理,请勿用在非法途径上,违者后果自负,与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 。…

Numba加速计算:最近邻插值(CPU+ GPU + Z轴切块 + XYZ轴切块 + 多线程)

文章目录 最近邻插值&#xff08;加速方法&#xff09;&#xff08;1&#xff09;scipy.ndimage.zoom&#xff08;2&#xff09;Numba-CPU加速&#xff08;3&#xff09;Numba-GPU加速&#xff08;4&#xff09;Numba-CPU加速&#xff08;Z轴切块&#xff09;&#xff08;5&…

分类预测|基于贝叶斯优化长短期记忆网络的数据分类预测Matlab程序 多特征输入多类别输出 BO-LSTM 附赠预测新数据

分类预测|基于贝叶斯优化长短期记忆网络的数据分类预测Matlab程序 多特征输入多类别输出 BO-LSTM 附赠预测新数据 文章目录 一、基本原理BO-LSTM分类预测原理和流程总结 二、实验结果三、核心代码四、代码获取五、总结 分类预测|基于贝叶斯优化长短期记忆网络的数据分类预测Mat…