系统管理

系统管理

admin
10月7日发布

runlevel命令查看运行级别:N 3,N代表上一个级别,3代表当前级别,N是None的意思,表示没有上一个运行级别
修改当前运行级别:init 5
系统默认运行级别:一开机就进入这个级别,配置文件在 /etc/inittab
/etc/rc.d/rc.local 文件:每次系统启动时会自动执行里面的内容,软链接 /etc/rc.local

grub配置文件:源文件 /boot/grub/grub.conf,软链接 /etc/grub.conf,/boot/grub/menu.lst
grub加密:grub-md5-crypt 命令用于生成密码
 grub菜单加密,password --md5 生成的密码,必须写在grub配置文件timeout和splashimage字段之间

进入单用户模式:主要用于破解修改密码

开机时按任意键进入grub菜单,按e,选择内核那一行,按e编辑,添加“ 1”空格和一个数字1,1代表单用户模式,回车确认,再按b启动系统就能进入单用户模式

进入光盘救援模式:

BIOS设置光盘启动(+号改变启动顺序),chroot /mnt/sysimage 命令改变根目录,由光盘的模拟根目录切换为硬盘中真正的系统根目录

服务分类:

RPM包默认安装的服务:又分为独立的服务    和        基于xinetd的服务
源码包安装的服务

chkconfig --list [服务名]:列出RPM默认安装服务的自启动状态,查出来有0-6的表示是 独立的服务

独立服务管理:

启动管理:1、使用 /etc/init.d/ 目录中的启动脚本启动服务 ,/etc/init.d/httpd start  【推荐】
                 2、使用 service 命令启动独立的服务,service 独立服务名 start | stop | restart ,service httpd restart
                 
自启动管理:1、chkconfig [--level 运行级别] [独立服务名] [on | off] ,chkconfig --level 2345 httpd on ,默认就是 --level 2345 ,chkconfig httpd on 也行
                    2、修改 /etc/rc.local 文件,添加标准启动命令,即可设置服务自启动        【推荐】
                    3、ntsysv [--level 运行级别]    ,不加运行级别默认为3
                    

基于xinetd的服务管理:

启动管理:修改 /etc/xinetd.d/基于xinetd的服务名称    文件,vi /etc/xinetd.d/telnet ,disable改为no,然后重启xinetd服务(同独立服务的启动方式)
自启动管理:1、chkconfig 服务名 on | off ,基于xinetd的服务,没有自己的运行级别,依靠xinetd服务的运行级别,不可指定 --level 选项
                    2、使用ntsysv命令
                    

源码包安装的服务:

启动管理:安装目录启动,例如apache服务,/usr/local/apache2/bin/apachectl start | stop
自启动管理:修改 /etc/rc.d/rc.local 文件,添加标准启动命令,即可设置服务自启动

让源码包服务被服务管理命令识别:

service 命令其实就是在 /etc/init.d/ 目录中查找是否有服务的启动脚本

让源码包的apache服务能被service命令管理启动,只需把启动脚本链接到 /etc/init.d/ 目录下
    ln -s /usr/local/apache2/bin/apachectl /etc/init.d/ 
    
让源码包的apache服务能被chkconfig命令管理自启动
    1、不仅需要使他能被service命令管理(同上)
    2、还要修改服务的启动脚本,在脚本开头添加
        # chkconfig:运行级别 启动顺序 关闭顺序
        # description:说明,内容随意
    3、然后使用命令 chkconfig --add 服务名     把服务加入到chkconfig命令的管理,--del 删除
    
让ntsysv命令可以管理源码包apache
    同chkconfig的管理机制,能被chkconfig管理就能被ntsysv管理
    
    

ps查看系统中所有进程:是静态显示的

ps aux 命令:不可以加 - ,会报错,遵守的是BSD操作系统格式
ps -le 命令:使用Linux标准命令格式

top查看系统进程:动态显示的,可设置更新间隔

pstree查看进程树:-p显示进程的PID,-u显示进程的所属用户

kill命令:kill [信号] PID,常用1信号让进程重启,9信号强制终止进程 kill -9 2246

killall命令:killall [信号] [选项] 进程名,-i 交互式,-I(大写i)忽略进程名大小写

pkill命令:pkill [信号] [选项] 进程名,-t 终端号:按照终端号踢出用户

当前登录的终端,只能管理当前终端的工作,不能管理其他终端的工作。把命令放入后台,只能在当前登录终端执行,退出当前登录终端后,命令就会停止
把命令放入后台:

1、“命令 &”,这种方法放入后台的命令,在后台是执行状态。但是注意,放入后台执行的命令不能与前台有交互,否则放入后台只能暂停,不能执行。
2、ctrl+z 快捷键,这种方法放入后台的命令,在后台都是暂停状态

后台命令管理:

查看后台的工作:jobs,-l(小写L)显示工作的PID
将后台暂停的工作恢复到前台执行:fg %工作号        %可以省略
将后台暂停的工作恢复到后台执行:bg %工作号        %可以省略
后台命令脱离登录终端运行:
    1、写入 /etc/rc.local 文件
    2、定时任务
    3、“nohup 命令 &”,举例 nohup tar -zcf etc.tar.gz /etc/
    

系统资源查看:

vmstat命令监控系统资源:vmstat 刷新延时 刷新次数
dmesg显示开机时内核检测信息
free命令查看内存使用状态
查看cpu信息:cpu主要信息保存在 /proc/cpuinfo
查看本机登录用户信息:
    w 命令,第一行与top的第一行一样
    who 命令,比w命令更加简洁
uptime命令:显示系统的启动时间和平均负载,就是top命令的第一行
查看系统与内核相关信息:uname [选项] ,-a 查看系统所有相关信息,-r 查看内核版本, -s 查看内核名称

判断当前系统的位数:”file 系统命令“,例如 file /bin/ls,可以判断位数

查询Linux系统的发行版本,用 ”lsb_release -a“ 命令查看

系统定时任务:定时任务和脚本中,都写绝对路径

at一次性定时任务:at命令执行需要atd服务的支持,atd是独立服务需要启动
    系统默认没有 /etc/at.allow 白名单文件,只有 /etc/at.deny 黑名单文件,可以编辑这两个文件设置哪个用户允许使用at命令(对root不生效)。默认按 at.deny 文件进行访问控制,如果有 at.allow 文件,此文件优先级更高,则按照此文件进行访问控制,at.deny 不生效。如果两个文件都不存在,则只有root用户可以使用at命令。

at [选项] 时间,ctrl+d保存at任务
atq:查询当前服务器上的at工作
at -c 工作号:查询指定at任务的具体内容
atrm 工作号:删除指定的at任务


crontab循环定时任务:crontab命令执行需要crond服务的支持,crond是独立服务需要启动
    1、crontab [选项]:-e 编辑定时任务,-l 查询定时任务,-r 删除当前用户所有的crontab任务,-u 用户名:修改或删除其他用户的crontab任务(只有root可用)
        crontab命令也有 /etc/cron.allow 和 /etc/cron.deny ,原则与at相同
        crontab -e 命令定义定时任务时,默认执行身份是当前用户
    2、修改 /etc/crontab 配置文件来定义定时任务:可以指定定时任务的执行身份,此文件只有root才可以修改
    3、把定时执行的脚本放到 /etc/cron.{hourly,daily,weekly,monthly} 目录中,/usr/bin/run-parts 命令会让目录中所有可执行文件依次执行(/etc/crontab中也可以用run-parts来执行某个目录中的所有脚本)
    
    时间格式:
        * * * * *,代表 一小时中的第几【分钟】 一天中的第几个【小时】 一个月中的第几【天】 一年中的第几个【月】 一周中的【星期】几
        * 代表任何时间        , 逗号用于分隔不连续的时间        - 代表连续的时间范围        */n 代表每隔多久执行一次
        星期几和第几天不要同时出现,他们都是以天为单位,若同时出现则是 或 的关系
        

anacron会使用一天,一周,一月作为检测周期,检测 /var/spool/anacron 目录中的cron.{daily,weekly,monthly} 文件用来判断是否有定时任务错过而没有执行
Centos5之后的版本中,anacron不再是单独的服务,而变成了系统命令,/etc/cron.{daily,weekly,monthly} 目录下的脚本,是被anacron调用的,详细调用过程参考 /etc/anacrontab 配置文件,注意不接管cron.hourly


日志文件:

/var/log/wtmp:二进制文件,用last命令查看,系统所有登录过的用户信息
/var/log/lastlog:二进制文件,用lastlog命令查看,所有用户最后一次登录时间
/var/log/btmp:二进制文件,用lastb命令查看,错误登录信息日志
/var/run/utmp:二进制文件,用w,who,users等命令查看,记录当前已登录用户的信息
/var/log/message:记录系统重要信息
/var/log/secure:记录验证和授权方面的信息



日志服务rsyslogd:

RPM方式安装的服务默认会把日志记录在 /var/log/ 下,源码安装的服务日志在源码包指定的目录中。但是这些日志不是由 rsyslogd 服务来记录和管理的,而是各个服务使用自己的日志管理文档来记录自身日志。

rsyslogd服务的配置文件在 /etc/rsyslog.conf :
    格式:服务名称 连接符号 日志等级            日志记录位置
    连接符号:“ . ”代表只要比后面等级高的日志都记录下来,“ .= ”代表只记录等于此日志等级的,“ .! ”代表记录不等于此日志等级的
    日志等级:“ * ” 代表所有日志等级,none 代表该服务的所有日志都不记录
    日志位置:可以写用户名,就会吧日志发送给某个用户,这个用户需要在线。“ * ”代表发送给所有用户



日志轮替:切割就是将一个大的日志文件拆分成多个小文件,例如每天,每周等进行保存。轮替就是周期性地处理日志文件,包括切割、重命名、压缩、删除等一系列操作。例如每周轮替alert.log日志,轮替时上周的日志文件改名为alert.log-20251129,创建新的日志文件alert.log,之后的新日志都保存到alert.log中,以此类推,rotate 2代表会保留两次轮替的旧日志文件

logrotate轮替配置文件:/etc/logrotate.conf
    weekly:每周对日志文件进行一次轮替
    rotate 2:保留2个日志文件
    
通过RPM方式安装的服务 日志默认就可以轮替
    
被rsyslog管理的服务日志,设置轮替加入logrotate后,要重启rsyslog服务。如果不是被rsyslog管理的服务日志,加入轮替后,则还需要重启这个服务。否则你会发现虽然新日志建立了,但是数据还是写入了旧的日志当中。
    
加入轮替方法:
    1、直接在 /etc/logrotate.conf 中写入日志的轮替策略
    2、在 /etc/logrotate.d/ 中新建该日志的轮替文件,在该文件中写入轮替策略
    
例如自己在rsyslog配置文件中创建的日志加入到轮替,logrotate配置文件内容这样写:
    /var/log/alert.log {
        weekly
        rotate 5
        create
        shaderscripts
        postrotate
        /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2> /dev/null) &> /dev/null
        endscript
    }
喜欢就支持一下吧
点赞 1 分享 收藏
评论
所有页面的评论已关闭
SSL