RHCE学习笔记-133-2

news2025/1/4 17:25:17

rpm and kickstart
The RPM Way
不会有互动事件
可以适用在所有软件,如kernerl和其他额外的软件都可以以rpm的形式
不需要安装前面的版本才能安装后面的版本
RPM Packge manager
RPM components
local database /var/lib/rpm
rpm and related executables
package files
primary functions
install/remove
query
verify
build
installing and removing software
Primary RPM options:
install: rpm -i,–install 没有旧版本就会安装,如果有旧版本,会同时留下新旧版本,通常用在kernel的安装
upgrade: rpm -U,–upgrade 没有旧版本就会安装,如果有旧版本就会删除旧版本,安装新版本,用在安装应用软件,旧版本没有必要留下来或不会再用的情况下.甚至有的应用程序只允许留下一个版本
freshen: rpm -F,–freshen 如果没有旧版本就不会安装,如果有旧版本删除旧版本,留下新版本,一般用在更新现有的系统.
erase: rpm -e,–erase 删除
output options:-v -h 显示安装进度的配合选项
iostat 需要安装sysstat-5.0.5-1.i386.rpm
支持url,ftp安装如:ftp:// http://
rpm -Uvh ftp://192.168.0.254/pub/sysstat-5.0.5-i.i386.rpm
updating a kernel PRM
don’t use rpm -U,rpm -F,旧版本会删除掉,我们不能确定新版本能用,建议留下旧版本,安装新版本后就会在grub.conf里添加一个kernel,也就是说可以使用rpm更新内核。
rpm -ivh kernel-version.arch.rpm
boot new kernel to test
revert to old kernel if problems arise
rpm -e kernel-oldversion if no problems
rpm queries
installed package options:
rpm -qa lists installed packages
rpm -qf filename shows owning package 显示档案是哪个套件安装的
rpm -qf /bin/gzip
rpm -qi package_name general information 套件信息
rpm -qi gzip
rpm -ql package_name lists files in package 列出套件里包含哪些档案
rpm -ql gzip
uninstalled package options:
rpm -qip package_file.i386.rpm 显示未安装的套件档案的信息
rpm -qlp package_file.i386.rpm 显示未安装的套件档案包含哪些档案
rpm verification
installed rpm file verification
验证rpm套件有没有被修改过
rpm -Va 验证所有安装的档案有没有修改过,跟rpm database比较
rpm -V package_name 验证某一个档案有没有被修改过,跟rpm database比较
rpm -Vp package_file.i386.rpm 验证某个跟rpm包进行比对
signature verification BEFORE package install
在安装档案之前可以验证这个档案有没有经过redhat签署
其实redhat在发布rpm的套件时会在其中签署一个GPG的签章
rpm --import RPM-GPG-KEY 导入gpg指纹档,记录各个rpm档案的签署资料
rpm --qa gpg-pubkey 查询gpg有没有导入成功
rpm --checksig package_file.i386.rpm 查询某rpm档案有没有经过redhat签章
看到OK就是经过签章的.
other rpm utilities and features
rpm2cpio 将rpm格式的档案转换成cpio类型的档案,rpm的档案是有root才有权限使用,转换后就可以让给普通用户使用了.转换后比较大
rpm2cpio sysstat-5.0.5-1.i386.rpm > sysstat.cpio
可以使用cpio -it < sysstat.cpio 导入进来。
执行完以后可以查询cpio里有哪些档案,里面都是以相对目录存储,一般我们解开cpio的档案建议新建一个文件夹并拷贝进去
cpio -id < sysstat.cpio
rpmdb-redhat 记录rpm相依性套件
system-config-packages
automatic dependency resolution
如何自动安装相依性的套件
1要使用rpmdb-redhat这个软件的资料库
2所有相依性的rpm必须放在同一个目录
3加上–aid参数
如:rpm -ivh abc.rpm --aid
red hat network(RHN)
提供red hat e-paper
警告我们哪些套件需要更新
red hat update agent
using kickstart to automate installtion使用kickstart自动安装redhat linux
使用kickstart自动安装,需要安装此套件
kickstart %packages
要安装的套件
kickstart %pre %post
安装之前和之后要执行的scripts
network installation server
必须通过网络,可以通过NFS,FTP,HTTP的方式。
必须将redhat的安装光盘全部拷贝到服务器上。
架设好网络安装服务器后,把第一张光盘插入客户端启动,把ks.cfg拷贝到软盘
启动后输入linux ks=floppy
user administration
user policy considerations
有多少人会使用,是不是要限制事件或地点
密码多久要更改一次
是否限制CPU和memory
是否限制硬盘空间
the user account database - /etc/passwd
档案里存储了系统账户资料,每个用户占用一行
less /etc/passwd
按v进入编辑模式
chfn更改用户finger
这个文件权限rw-r–r–
passwd的用户名后面的x去掉后次用户登录就不需要密码了
shell是/sbin/nologin,那么此用户不能登录系统但是可以登录本机的ftp
shell是/bin/false,那么此用户仅可以收发邮件。
adding a new user account
useradd username
系统实际上去编辑
/etc/passwd,/etc/shadow,/etc/group
create and populate home directory
set permission and ownership
set account password using passwd
/etc/skel默认的用户/home文件,文件几乎一样,不同的是ownership不一样
使用newusers建立大量用户,编辑aaa,依照passwd格式填写
vi aaa
user4 user4:503:503::/home/user4:/bin/bash
user5 user5:504:504::/home/user4:/bin/bash
newusers aaa
使用newusers建立用户的时候只会建立home目录而不会复制skel的内容
user private groups(UPG)
在建立账户的同时,为这个账户建立一个同名的私有组,并把这个帐号加入到这个私有组来.所有以此账户建立的文件的组权限都会有这个私有组.防止此账户新增的档案不属于任何一个群组。
group administration
entries added to /etc/group
groupadd
groupmod
groupdel
modifying /deleting accounts
修改用户资料
修改/etc/passwd
使用命令usermod
更改用户home
mkdir /home/test-6
chown test6:test6 /home/test-6
usermod -d /home/test-6 test6
后面跟新的家目录
usermod -G group1 test6 把用户加入到其他群组
usermod -g group2 test6 更改用户主要群组
usermod -L test6 锁定test6账户,实际上是更改/etc/shadow密码字段前加!
如果是!!表示这个用户还未设置密码
usermod -U test6 解除锁定
删除用户
手动方式编辑/etc/passwd,/etc/shadow,/etc/group,/var/spool/mail/username
命令方式userdel -r test6,使用userdel命令不会删除/etc/group里test6组的内容,可以使用groupdel test6
password aging policies
默认情况下,密码永远不会过期
为安全考虑,可以强制多长时间修改一次密码
更改/etc/login.defs设置默认用户密码有效期
也可以使用chage [option] user变更密码时间相关参数
chage -l user6查看账户密码信息
chage -I 3 user6 密码过期几天后锁定用户帐户,默认是-1。
login shell scripts
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
non login shell scripts
~/.bashrc
/etc/bashrc
/etc/profile.d/*.sh
在这里插入图片描述

switching account
syntax
su [-] [user]
su [-] [user] -c command 如果只要以某个用户身份执行某个命令
允许暂时切换成别的账户工作,默认情况下,不指定是root
su
su -
[-] 是切换到新的用户,并开启一个login shell,如果不加-,只是切换到新用户,开启一个no login shell
sudo
让一般的用户可以执行只有root才可以执行的指令
可以在/etc/sudoers文件里定义某一个特定的账户可以执行某一个特定的只有root可以执行的指令
an effective user id of 0
group id of root’s group
/etc/sudoers没有定义的账户使用sudo时,会通知root
vi sudoers只读方式
visudo sudoers 编辑
network users
我们可以把用户资料集中存储在网络上一台服务器上,资料包括:UID,default shell,home directory,group memberships,and so on,可以是NIS或LDAP服务器
vi /etc/nsswitch.conf
paaswd
shadow
group
authentication configuration
system-config-authentication GUI界面
如果在命令后加–nox 会开启文字界面
authconfig命令直接使用文字界面
支持一下几种认证服务器:
(local files),NIS,LDAP,Hesiod,Winbind
支持认证方式:
(NSS),Kerberos,LDAP,SMB,winbind(MS AD)
NIS configuration(配置NIS服务器验证用户身份)
Must install ypbind and ypserver and portmap RPMs
run system-config-authentication
enable NIS to provide user information
specify NIS server and NIS domain name
keep default authentication
what does this actually do?
four text-based configuration files are changed
/etc/sysconfig/network NISDOMAIN
/etc/yp.conf NIS server for NIS domain
/etc/nsswitch.conf use NIS
/etc/pam.d/system-auth shadow NIS
LDAP configuration
Must install nss-ldap and openldap RPMs
Run system-config-authentication
enable ldap to provide user information
specify server,the search base DN and TLS
enable LDAP to provide authentication
The purpose for using authentication tool
four text-based configuration files are changed
/etc/ldap.conf
/etc/openldap/ldap.conf
/etc/nsswitch.conf
/etc/pam.d/system-auth
file ownership
every file has both user and group “ownership”
a newly create file will be owned by:
the user who create it
the current primary group of that user
sgid directories may change this behavior
the chown command can be used by root to change ownership
linux file permission
access levels
u user
g group
o other
access modes
w write
r read
x execute
flags indicate access mode for each access level
file mods is a concise collective of flags’values expression
d directory
- file
sudi /sgid executables
在这里插入图片描述

默认情况下,用户执行一个可执行文件的时候会以自己的身份执行,但是设置了SUID或SGID的时候,用户分别会以用户所有者身份和所属组身份执行
the sticky bit
如果使用者在一个目录上有write权限的话,那么不论在文件上有哪些权限,也不管文件的所有者是谁,使用者都可以删除掉目录里的档案,但是如果在目上设定了sticky权限后,那么在这个目录里的档案只有档案的所有者可以删除自己的档案.
the setgid access mode
默认情况下,使用者在目录里建立的档案会属于预设的群组,但是如果在这个目录上设置了SGID权限的话,那么,使用者在这个目录里建立的档案都会属于这个目录所属的群组
default file permission
当我们建立文件或目录是,系统会把所有权限放开给所有人,但是还要经过umask的计算
non-system user’s umask 002
files will have permission of 664
directories will have permissionm of 775
support user private groups
system user’s umask 022
/etc/bashrc里定义了umask
有个判断的语句,判断用户与所属组是否一致,一致为022,不一致022
access control lists(ACLs)
Grant RWX access to files to multiple users or groups
ACLs 可以针对某些特定的使用者或者是组来设定对某一个特定文件或一个特定目录的权限
vi fstab
LABEL=/ / ext3 default,acl 0 0
getfacl /opt 查看目录的acl设置
setfacl 设定acl
setfacl -m u:user1:r-x /project1
在project1目录上为user1开放r和x权限
printing and administration tools
CUPS Overview
common unix printing system
支持*.html *.pdf *.jpg…等格式
CUPS configuration files
/etc/cups/cupsd.conf
/etc/cups/printers.conf
lpadmin
system-config-printer
cups web界面形式
CUPS queue management
system-config-printer
system-config-printer-tui
http://localhost:631
cron
可以让系统在指定的时间去做某个工作
man crontab
man 5 crontab
蓝色是一组,红色是一组,中间是or的关系
在这里插入图片描述

日期和星期之间是or连接的
crontab的任务是在背景中执行的,比如echo命令也是不会显示在终端上的,执行完毕后会发一封邮件给root
controlling access to cron
/etc/cron.allow
/etc/cron.deny
限制哪些人可以使用cron
在这里插入图片描述

system crontab files
/etc/crontab
系统里的crontab文件,系统所使用的crontab存在以上这个文件里。
02 4 * * * root run-parts /etc/cron.hourly
使用root身份执行/etc/cron.hourly目录下所有的脚本
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
system cron job: tmpwatch
/etc/cron.daily/tmpwatch
系统每天都会执行这个scripts
man tmpwatch 清除系统很长时间没有存取的档案
默认情况下tmpwatch会判断文件的atime,查看是否要清除这个文件。
system cron job: logrotate
/etc/cron.daily/logrotate 压缩并邮寄系统的log文件
可以通过/etc/logrotate.conf来设定logrotate
默认情况下每周压缩备份系统log,保存在/var/log/messages
system logging
系统里有2个服务负责系统日志的记录,
syslogd负责记录应用过程序产生的log,
klogd负责记录kernel产生的log

none<debug< info<notice<warning<error<critical<alert<emerg

none :不记录日志
debug:调试信息,系统进行调试时产生的日志,不属于错误日志,不需要过多关注。
info: -般的通知信息,用来反馈系统的当前状态给当前用户。
notice :提醒信息,需要检查一下程序了,不理会可能会出现错误。
warning:警告信息,当出现警告时,你的程序可能已经出现了问题,但不影响程序正常运行,尽快进行处理,以免导致服务宕掉。
error :错误信息,出现这一项时,已经挑明服务出现了问题,服务都无法确认是否能正常运行。
critical :比较严重的错误信息,服务已经宕了,可能已经无法修复。
alert :警报信息,需要立即采取行动,不仅是服务宕了,还会影响系统的正常后动。
emerg :紧急信息,系统可能已经不能使用了,如果不能解决,就重新装机吧。

syslogd和klogd依据/etc/syslog.conf里面的设置来判断是否要记录及记录什么等级的log
系统log在/var/log里分类存储
syslog configuration
/etc/syslog.conf
mail.* - /var/log/mailog “-是现将mail的log存储在ram的buffer里,等到一定数量后再存储到硬盘,通常log档案很大时才使用这样的方式。
*.emerg * 任何程序产生emerg级别的log后显示给所有的用户,*代表所有用户
local7.* /var/log/boot.log 记录系统引导时产生的log
如果想把log传输到其他服务器上去的话,修改/etc/syslog.conf
authpriv.* @server1
还必须在server1上设置可以接受其他服务器传过来的log
vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS=”-r -m 0”
tape drives
(DAT:digital autdio tape DDS:digital date storage DLT:digital linear open)
/dev/stN
如果系统检测到有scsi的tape设备的话,会放到以上的目录。
/dev/[n]stN
没有自动回带的scsi tape设备
man st
/FILES
/dev/st* : the auto-rewind SCSI tape devices
/dev/nst* : the non-rewind SCSI tape devices
man mt
mt是控制磁带机的磁头的

using tar
用来把一个目录或文件打包并压缩成一个档案
man tar
tar -czvf /var/home.tar.gz /home
tar -tf /var/home.tar.gz
tar xzf home.tar.gz
using dump/restore
dump可以备份ext2/3 格式的文件系统,也就是可以备份整个分区
dump 可以不同级别的备份。
A level 0, full backup, guarantees the entire file system is copied (but see also the -h option below).A level number above 0,incremental backup,tells dump to copy all files new or modified since the last dump of a lower level. The default level is 9
0是全备份,incremental backup备份上次备份以来变化的数据,,dump根据levels来判断上次备份时间,备份最近一次比此次level低的数据。

通常会02143来备份,是为了容易恢复文件。
dump -0 -u -f ~/backup /dev/sda1
-f是指定要备份到哪里,如/dev/st0 (a tape drive),/dev/rsd1c (a floppy disk drive), an ordinary file, or - (the standard output)
-u dump的level是靠/etc/dumpdates来记录的,-u是要更新dumplevel里面的记录。
using cpio
可以从打包好的档案里复制里面的内容,也就是解压缩打包好的档案,或者是向打包好的档案里添加内容
-i Run in copy-in mode,copy-in模式是从一个打包好的档案里复制里面包含的内容,也就是解压一个打包好的档案。
-o Run in copy-out mode,copy-out是把其他的答案复制到一个大包好的档案里面去,也就是把档案打包。
-t 列出一个打包好的档案里包含哪些文件。
find /test/ | cpio -o > test.cpio
使用cpio打包test档案。
cpio -it < test.cpio
查看cpio里面的内容
cpio -id < test.cpio
解压档案,必须解压到没有原始档的目录,也就是说没有重名的文件夹。
remote backups
usrname@hostname:/path
tar -czvf root@example1:/var/home.tar.gz /home 把本地的home备份到远程主机
dump -0uf root@example1:/var/home.dump /home把本地的home备份到远程主机
the X window system
Xorg:the X11 server,X是一种协议,用来定义图形化的基本功能和通讯方式 。
X11(binary code)负责和底层的硬件输入输出设备通讯的程序
X Server
X Client
Xorg Server Configuration
通常在安装完成后系统会自动执行x server的设定工具
in runlevel 3:system-config-display可以开启Xserver的设定工具
可以用runlevel确定runlevel
X window in runlevel 3
在runlevel 3中是怎么启动X window
startx

系统先判断有无~/.xinitrc,如有执行这个档案的设置,再执行/etc/X11/xinit/xinitrc.d/*下的脚本;如无则执行/etc/X11/xinit/xinitrc档案设定,默认情况下是没有~/.xinitrc的。当脚本执行完毕后,检查有无~/.Xclients,如有执行里面设置,再执行desktop设定,如无则执行Xclients
X window in runlevel 5
在runlevel 5的环境中怎么启动X window的

remote x sessions
该怎么使用远端X Server的服务
使用ssh -Y 192.168.8.100
root@192.168.8.100’s passwd:
last login:Thu Oct 20 16:39:50 2008 from ns.domain.com
[root@example ~]xterm #在远端提示字符下输入要使用的图形界面程序如xclock或xterm
advanced filesystem management
software RAID configuration

raid5 xor运算得到一个值
software RAID用分区模拟硬盘实现RAID
在硬盘上分相同大小的2个分区,标签为fd,fdisk /dev/sdb 增加2个partition
mdamd -C /dev/md0 -l 0 -n 2 /dev/sdb2 /dev/sdb3
cat /proc/mdstat
mke2fs -j /dev/md0
mkdir /raiddata
ls -l /raiddata
mount /dev/md0 /raiddata/
ls -l /raiddata/
df -h
software RAID recovery
mdamd /dev/md0 -f /dev/sdb2 模拟onsdb2坏掉
mdamd /dev/md0 -a /dev/sdb2 增加一个新的分区到rai里。
converting LVM1 to LVM2
Logical Volume Manager
PV—VG—类似格式化,得到PE(Virtual Disk)—划分LV以后才能存资料
使用lvm的好处是可以动态扩大lv
vgconvert -M2 vg0 把lvm1转化为lvm2
creating logical volumes
新建2个分区,变更分区类型:8e
w退出,提示重启生效,也可以使用partprobe命令
pvcreate /dev/sdb5 #把分区转换成PV
pvcreate /dev/sdb6 #把分区转换成PV
vgcreate vg1 /dev/sdb5 /dev/sdb6 #创建vg1
lvcreate -L 30M -n lv01 vg1 #建立30m的名为lv01的lv。
ls -l /dev/vg1/
mke2fs -j /dev/vg1/lv01 #格式化lv01对应的logic volume
mkdir /lvmdata
ls -l /lvmdata
mount /dev/vg1/lv01 /lvmdata
vi /etc/fstab
resizing logincal volumes
放大LV
lvextend -L +20M /dev/vg1/lv01
df -h
放大后还没有格式化,所以用df -h查看lv01还是30M
ext2online /dev/vg1/lv01 #用ext2online格式挂载的文件系统
df -h
放大VG
建立新的分区,修改分区类型8e,partprobe
pvcreate /dev/sdb7 #创建pv
vgextend vg1 /dev/sdb7 #扩大vg1
vgdisplay vg1 #使用vgdisplay查看是否扩大了vg1
删除VG
先删除掉lv,删除lv先umount,umount /lvmdata
df -h
lvremove /dev/vg1/lv01 #删除lv01
vgremove vg1 #删除vg1
vgdisplay vg1 #提示vg1不存在,证明vg1已经被删除掉了
the linux quota system
磁盘配额
可以在每个文件系统上使用配额,根据用户,组设定限制内容。
必须在挂载文件系统是加上不同的参数:usrquota grpquota
可以限制blocks数量(硬盘空间)和indoes数量(建立文件和目录的数量)
soft limit(临时超过配额)
grace period(多长时间,默认一周)
hard limit #grace period过后就会变成hard limit
必须在fstab里加入相应的参数
在需要加配额的目录后加入defaults后加usrquota或grpquota
vi /etc/fstab
mount -o remount /home
quotacheck -c /home #扫描home目录,并把资料存放到这里。
ls -l /home
目录里多个了aquota.user
quotaon /home
使用user1登录
dd if=/dev/zero of=big bs=1M count=6
ls -lh
使用root
edquota user1
开启user1用户quota的配置
修改后保存退出
su - user1
quota
ls -lh
dd if=/dev/zero of=big1 bs=1M count=3
dd if=/dev/zero of=big2 bs=1M count=3
ls -lh
edquota -p user1 user2
把user1的配置复制给user2
repquota -a
troubleshooting
troubleshooting
排除故障的原则
当出项问题时只会出现症状,而不会告诉我们问题出在哪里
所以尽量收集症状的信息来定义系统发生了什么问题
还要定义好系统里有哪些功能是正常的
相关信息收集完毕后才可能假设问题的原因是什么
我们可以根据log文件来查看到底是不是这个原因造成的问题
如果必须修改设置才能排除问题的话,在修改之前最好把原来的件备份起来
things to check:x(当x window发生问题时)
不要在runlevel 5下排除故障
重启进入runlevel 3下排除
system-config-display看能不能打开x设置的工具,如果不行的话,问题可能在显卡
使用X -probeonly来检查显卡,使用/etc/X11/xorg.conf配置来测试能不能启动x server,并把日志记录在/var/log/Xorg.0.log
如果显卡没有问题的话,看一下/home和/tmp目录是不是满的。
df -h /home
df -h /var
检查xfs服务有没有启动
service xfs status
things to check:networking
hostname resolution
dig hostname
ip configuration
ifconfig
default gateway
route -n
correct kernel modules for NIC
cat /etc/modprobe.conf
device activation 重启
ifdown eth0
ifup eth0
order of the boot process开机发生问题的时候排除故障流程
bootloader configuration
GRUB
kernel
有没有正确的载入内核
panic
开机时发生panic的话则是表示根目录没有挂载成功
检查/sbin/init和/etc/inittab
检查根目录是否损坏
/etc/rc.d/rc.sysinit没有执行成功的话
有可能/bin/bash有损坏或/etc/fstab设置有误
检查/etc/rc.d/rc
及/etc/rc.d/rc?.d/目录里面的scripts有没有问题
filesystem corruption
文件系统故障通常是不正常关机导致的
首先unmount the filesystem
fsck -y
比如/home系统有问题
umount /home
ls /home #目录必须是空的才能确认/home被卸载了
fsck -y /dev/sda2 #/home对应/dev/sda2
mount /dev/sda2 /home
ls /home
recovery run-level
single user mode
runlevel 1 进入方法:a键修改启动菜单,ro root=LABLE/ 1
runlevel S 进入方法:开机出现welcome to red hat enterprise linux es
press ‘I’ to enter interactive startup
会一个一个提示要不要启动某项服务
runlevel emergency 进入方法:/etc/fstab设置错误的时候就会进入或文件系统 损坏。emergency模式下命令要用绝对路径才能找到
some /etc/rc.sysinit也就是nologin模式
rescue mode
当根目录所在的文件系统损坏或boot loader遭到破坏的时候
boot from CDROM
可以使用第一张光盘引导,或把里面的boot.iso烧录到光盘上
或者可以把里面的diskboot.img拷贝到USB key中
使用以上方式启动后才可以使用命令进入到rescue mode
rescue mode会尝试找到根目录所在的文件系统并把根目录挂载到/mnt/simage目录里
模拟MBR损坏的时候:
dd if=/dev/zero of=/dev/sda bs=446 count=1 #破坏MBR,重启后只出现一个光标
修改setup,用光驱启动,放入第一张光盘,在boot:提示符下输入
linux rescue
尝试找到根目录,并挂载到/mnt/sysimage
按照提示完成进入sh-3.00#
输入grub-install /dev/sda
会提示找不到命令,这是因为dev在根目下面,而根目录挂载到/mnt/sysimage目录去了,所以使用chroot /mnt/sysimage/命令在使/mnt/sysimage目录当成根目录
然后使用命令grub-install /dev/sda
exit #退出change root机制
exit #退出 rescue mode
模拟当根目录所在的文件系统出问题的时候:
根目录所在的文件系统损毁不一定是真的文件系统损毁,有可能是系统找不到根目录。
vi /etc/grub/grub.conf破坏grub设置
比如删除kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet这一行,这样系统在开机的时候就找不到根目录

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

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

相关文章

大数据NiFi(十三):NiFi监控

文章目录 NiFi监控 一、处理器状态指示有如下几种情况 二、对于每个组的监控情况如下

CMMI之客户验收

客户验收&#xff08;Customer Acceptance, CA&#xff09;是指客户依据合同对产品进行审查和测试&#xff0c;确保产品满足客户需求。客户验收过程域是SPP模型的重要组成部分。本规范阐述了客户验收的规程&#xff0c;该规程的“目标”、“角色与职责”、“启动准则”、“输入…

Spring 源码解析~13、Spring 中的钩子函数汇总

Spring 中的钩子函数汇总 一、生命周期总览 二、BeanDefinition 生成与注册阶段 钩子执行顺序与博文顺序一致&#xff0c;即 1->n 1、EmptyReaderEventListener#defaultsRegistered 触发点&#xff1a;创建 BeanDefinitionParserDelegate 委派类时触发解释&#xff1a;通知…

本立道生:必备的基础知识

通过前面两节课的内容&#xff0c;我带领大家熟悉了一下 Visual Studio C 开发环境的必备知识&#xff0c;虽然还有很多关于 Visual Studio 的重要知识没有介绍&#xff0c;但为了让你尽快进入 C 开发环节&#xff0c;及早获得开发程序的愉悦&#xff0c;我们暂时只介绍这些必备…

【数据结构】5.5 遍历二叉树和线索二叉树

5.5.1 遍历二叉树 遍历定义 顺着某一条搜索路径巡访二叉树中的每个结点&#xff0c;使得每个结点均被访问依次&#xff0c;而且仅被访问一次&#xff08;又称周游&#xff09;。访问的含义很广&#xff0c;可以是对结点作各种处理&#xff0c;如&#xff1a;输出结点的信息&a…

Centos7开启SSH连接配置

1、查看是否已安装openssh-server&#xff1a; [rootlocalhost ~]# yum list installed | grep openssh-server 如果有信息说明已安装了openssh-server&#xff0c;如果输出没有任何结果&#xff0c;说明没有安装。 2、安装openssh-server&#xff08;如果已安装&#xff0c…

微信小程序(学习笔记篇)

基本项目结构 pages用来存放所有小程序的页面utils 用来存放工具性质的模块&#xff08;例如:格式化时间的自定义模块)app.js小程序项目的入口文件app.json 小程序项目的全局配置文件app.wXss小程序项目的全局样式文件project.config.json项目的配置文件sitemap.json用来配置小…

买卖股票的最佳时机 II -数学推导证明贪心思路 -leetcode122

问题说明来源leetcode 一、问题描述: 122. 买卖股票的最佳时机 II 难度中等1941 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可…

Spark Core----RDD详解

为什么需要RDD 分布式计算需要&#xff1a; 分区控制&#xff08;多台机器并行计算&#xff0c;将一份数据分成多份&#xff0c;在不同机器上执行&#xff09;Shuffle控制&#xff08;不同分区数据肯定需要进行相关的关联&#xff0c;不同分区进行数据传输叫Shuffle控制&…

分享77个NET源码,总有一款适合您

NET源码 分享77个NET源码&#xff0c;总有一款适合您 NET源码下载链接&#xff1a;https://pan.baidu.com/s/1vhXwExVAye5YrB77Vxif8Q?pwdzktx 提取码&#xff1a;zktx 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xf…

Html 3D旋转相册制作

程序示例精选 Html 3D旋转相册制作 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<Html 3D旋转相册制作>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习…

zabbix监控主机

zabbix官网 zabbix分为zabbix server&#xff08;zabbix服务端&#xff0c;用来展示监控的&#xff09;和zabbix-agent&#xff08;zabbix客户端用来收集数据的&#xff09; zabbix-agent客户端有两种工作模式&#xff0c;被动模式&#xff08;由zabbix服务来采集数据&#xff…

二十二、Kubernetes中Pod调度第四篇污点(容忍)调度详解、实例

1、概述 在默认情况下&#xff0c;一个Pod在哪个Node节点上运行&#xff0c;是由Scheduler组件采用相应的算法计算出来的&#xff0c;这个过程是不受人工控制的。但是在实际使用中&#xff0c;这并不满足的需求&#xff0c;因为很多情况下&#xff0c;我们想控制某些Pod到达某…

魔方爱好者快来康康,困难的平面魔方来了!

前言和效果图我今天看到一个网站&#xff0c;就是关于魔方的&#xff0c;里面二阶魔方引起了我的兴趣。https://rubiks-cube-solver.com/2x2/进去后你们可以看到&#xff0c;二阶魔方的平面展开图&#xff0c;复原也更加困难。虽然是英文的&#xff0c;但我还是玩得不亦乐乎。好…

查看GPU使用情况和设置CUDA_VISIBLE_DEVICES

文章目录一、简介二、查看GPU状态和信息三、使用3.1临时设置&#xff08;临时设置方法一定要在第一次使用 cuda 之前进行设置&#xff09;3.2python 运行时设置3.3永久设置四、参考资料一、简介 服务器中有多个GPU&#xff0c;选择特定的GPU运行程序可在程序运行命令前使用&am…

企业舆情监控排查什么,TOOM讲解企业舆情监控工作方案?

互联网时代&#xff0c;企业舆情发生因素很多&#xff0c;如果不能及时监控解决&#xff0c;就会引发无限舆情发展&#xff0c;进而影响到企业品牌声誉&#xff0c;引发企业信用危机&#xff0c;所以就需要做好企业舆情监控&#xff0c;接下来我们简单了解企业舆情监控排查什么…

CMMI的五个级别及其特征简述

CMMI 一共分五个级别&#xff0c;一级最低&#xff0c;五级最高&#xff0c;一般企业初次认证CMMI从三级开始。 1、CMMI一级&#xff0c;完成级。在完成级水平上&#xff0c;企业对项目的目标与要做的努力很清晰。项目的目标得以实现。一般来说&#xff0c;公司的初始阶段就…

【C进阶】指针笔试题汇总

家人们欢迎来到小姜的世界&#xff0c;<<点此>>传送门 这里有详细的关于C/C/Linux等的解析课程&#xff0c;家人们赶紧冲鸭&#xff01;&#xff01;&#xff01; 指针笔试题前言一、题1&#xff08;一&#xff09;题目&#xff08;二&#xff09;答案及解析&#…

【Python】函数——模块与函数的导入

概述 为了方便使用函数&#xff0c;我们可以将函数存储在称为模块的独立文件中&#xff0c;再将模块导入到主程序中&#xff0c;导入一个模块需要使用import语句。 导入整个模块 模块是扩展名为.py的文件 1、导入某个模块 语法为&#xff1a; import module_name 2、导入…

[oeasy]python0043_八进制_oct_octal_october_octave

八进制(oct) 回忆上次内容 什么是 转义&#xff1f; 转义转义 转化含义\ 是 转义字符\n、\r是 转义序列 还有什么 转义序列 吗&#xff1f; \a是 响铃\b 退格键\t 水平制表符 tab键\v、\f 实现喂纸不回车 通过 16进制数值 转义 \xhh输出 (hh)16进制对应的ascii字符 如果我们不…