网站开发 策划书/百度网站的优化方案
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-59 | 0-23 | 1-31 | 1-12 | 0-7(0和7都表示星期日) |
(4)、特殊字符
* : 任意时刻
- : 表示范围
,(逗号) :分割时段
*/数字 :指定时间间隔频率,如:每3分钟执行一次:*/3
(5)、时间描述示例:
1 2 * * * : 每天凌晨2点1分执行动作
0 17 * * 1 : 每周一下午17点整执行动作
0 5 1,15 * * :每月1日和15日凌晨5点执行动作
40 4 * * 1-5 :每周一至周五凌晨4点40分执行动作
*、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 前,执行于 2023年08月19日 星期六 14时56分45秒。
依赖关系解决。
=========================================================================================================================================================软件包 架构 版本 仓库 大小
=========================================================================================================================================================
安装: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 8月 19 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 8月 19 16:37 logfile2023-08-19-16:37-01
-rw------- 1 root root 1196788 8月 19 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、实验一:编写脚本tes…...

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

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

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

【数据库】P1 数据库基本常识
数据库基本常识 数据库 ≠ 数据库管理系统表(Table)SQL是什么 数据库 ≠ 数据库管理系统 数据库是保存有组织的数据的容器,数据库称为 DB(DataBase);数据库管理系统是创建和操纵数据库的软件,数…...

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

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

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

PyTorch学习笔记(十三)——现有网络模型的使用及修改
以分类模型的VGG为例 vgg16_false torchvision.models.vgg16(weightsFalse) vgg16_true torchvision.models.vgg16(weightsTrue) 设置为 False 的情况,相当于网络模型中的参数都是初始化的、默认的设置为 True 时,网络模型中的参数在数据集上是训练好…...

Python爬虫的scrapy的学习(学习于b站尚硅谷)
目录 一、scrapy 1. scrapy的安装 (1)什么是scrapy (2)scrapy的安装 2. scrapy的基本使用 (1)scrap的使用步骤 (2)代码的演示 3. scrapy之58同城项目结构和基本方法&…...

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

【数据结构与算法】十大经典排序算法-归并排序
🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...

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

.netcore grpc的proto文件字段详解
一、.proto文件字段概述 grpc的接口传输参数都是根据.proto文件约定的字段格式进行传输的grpc提供了多种类型字段;主要包括标量值类型(基础类型)、日期时间、可为null类型、字节、列表、字典、Any类型(任意类型)、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、决策树的偏置 四、基于实例的学习…...

单片机模块化编程文件创建流程
一、在工程文件夹下创建一个新的文件夹,命名为“ModulesCodesFiles”,译为“模块化代码文件”,用于存放所有模块化代码文件。 二、在“ModulesCodesFiles”文件夹下为每个模块创建一个新的文件夹,命名为模块的名称,例…...

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

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

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

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

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

【图像分类】理论篇(2)经典卷积神经网络 Lenet~Resenet
目录 1、卷积运算 2、经典卷积神经网络 2.1 Lenet 网络构架 代码实现 2.2 Alexnet 网络构架 代码实现 2.3 VGG VGG16网络构架 代码实现 2.4 ResNet ResNet50网络构架 代码实现 1、卷积运算 在二维卷积运算中,卷积窗口从输入张量的左上角开始ÿ…...

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

[管理与领导-30]:IT基层管理者 - 人的管理 - 向上管理,管理好你的上司,职业发展事半功倍。什么样的上司不值得跟随?
目录 前言: 一、什么是向上管理 二、为什么要向上管理 三、如何进行向上管理 四、向上管理的注意事项 五、向上管理的忌讳 六、向上管理常犯的错 七、如何帮助上司解决他关心的问题 7.1 如何帮助上司解决他关心的问题 7.2 如何帮助上司降低压力 八、什么…...

Java进阶篇--迭代器模式
目录 同步迭代器(Synchronous Iterator): Iterator 接口 常用方法: 注意: 扩展小知识: 异步迭代器(Asynchronous Iterator): 常用的方法 注意: 总结:…...

【CAM】CAM(Class Activation Mapping)——可视化CNN的特征定位
文章目录 一、CAM(Class Activation Mapping)二、CAM技术实现2.1 网络修改2.2 微调2.2 特征提取 三、总结Reference 完整代码见Github :https://github.com/capsule2077/CAM-Visualization ,如果有用可以点个Star,谢谢! 一、CAM(C…...

Maven教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。Maven 是…...

Gof23设计模式之模板方法模式
1.定义 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 2.结构 模板方法(Template Method)模式包含以下主要角色: 抽象类࿰…...

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