鸟哥的Linux私房菜笔记-系统服务

文章目录

  1. 1. 系统服务-daemon
    1. 1.1. ldd
    2. 1.2. tcp wraper
    3. 1.3. service
    4. 1.4. chkconfig
    5. 1.5. runlevel
    6. 1.6. init
    7. 1.7. ntsysv
  2. 2. 登陆档案-log
    1. 2.1. log
    2. 2.2. level
    3. 2.3. logrotate
      1. 2.3.1. 操作syslog
    4. 2.4. depmod
    5. 2.5. lsmod
    6. 2.6. modinfo
    7. 2.7. insmod,rmmod,modprobe
    8. 2.8. rpm
    9. 2.9. yum

笔记记录于《鸟哥的Linux私房菜-第三版》,以备多看。

系统服务-daemon

  • 方式
    • stand alone #独立启动常驻内存 /etc/init.d/* (httpd,vsftpd)
    • super daemon #常驻内存的 xinetd 统一管理 /etc/xinetd.d/* (telnet)
      • multi-threaded #一个服务负责多个程序
      • single-threaded #一个一个处理,多的排队
  • 服务
    • signal control
    • interval control #排程等服务
  • /etc/services #记录服务端口
  • super daemon的参数档案[/etc/xinetd.d/*]
    • socket_type stream:tcp;dgram:udp;raw:直接和IP连接
    • wait yes:single-control;no:multi-control
    • instances 最大连接数
    • per_source 同一IP最多可连接数
    • cps num1 num2 1秒内能接受新连接数 超过则暂时关闭该服务的秒数
    • redirect ip port #服务转址
    • only-from [0.0.0.0,192.186.1.0/24,hostname,domainname] #防火墙机制
    • no-access
    • sccess_times [HH:MM-HH:MM] #时间控管

ldd

  • 产看执行文件的动态链接库

tcp wraper

  • 支援libwrap.so 的可以使用 /etc/hosts.{allow,deny} 来做防火墙(httpd没有此功能)
  • rsync:127.0.0.100:deny hosts.deny第三栏默认为 deny,可不写
  • 第一、二栏
    • ALL 全部程序或ip
    • LOCAL 来自本机
    • UNKNOWN 不知道的IP、domain、服务
    • KNOWN 可解析的IP、domain、服务
  • 第三栏
    • spawn %d(hostname),%a(address),%d(daemon)
    • twist 执行后续命令后终止该连接

service

  • service –status-all #查看所有服务状态,同 netstat -anl

chkconfig

  • –list [服务名称] #列出服务状态
  • –add 服务名称
  • –del 服务名称
  • –level [0-6] 服务名称 [on|off]
  • chkconfig –level 345 atd on #atd在run level为3,4,5时启动

    =>run level

    • 0 halt (系统直接关机)
    • 1 single user mode (单人维护模式,用在系统出问题时的维护)
    • 2 Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS 服务)
    • 3 Full multi-user mode (完整含有网络功能的纯文本模式)
    • 4 unused (系统保留功能)
    • 5 X11 (与 runlevel 3 类似,但加载使用 X Window)
    • 6 reboot (重新启动)

    0,6系统启动相关,不应设置为预设

runlevel

  • 查看前一个与当前level

    init

  • N 切换run level

    ntsysv

    登陆档案-log

    vim /etc/rsyslog.conf #配置log

log

  • cron: /var/log/cron
  • dmesg: /var/log/dmesg
  • 系统账号最后登录资讯: /var/log/lastlog
  • mail: /var/log/maillog或/var/log/mail/*
  • 系统错误: /var/log/messages
  • 密码错误等: /var/log/secure
  • 登陆正确 | 错误: /var/log/wtmp (last) | faillog

level

  • info,notice,warning,err,crit,alert,emerg [denug,none]
  • . #大于等于后边等级的登陆记录 mail.info
  • .= #指定为后边设置等级
  • .! #除后边的等级都记录

logrotate

  • -v #显示过程
  • -f #强制rotate

操作syslog

#防止用户修改log导致log不能正常记录
chattr -a /var/log/messages

#利用prerotate和postrotate使logrotate正常进行
vi /etc/logrotate.d/syslog

/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/spooler
/var/log/boot.log
/var/log/cron
{
    sharedscripts
    prerotate
    /usr/bin/chattr -a /var/log/messages
    endscript

    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    #下边这条在有rsyslogd.pid处使用
    /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    /usr/bin/chattr +a /var/log/message
    endscript
}

logrotate

  • /var/log/log_name.log 有log文件
  • /etc/logrotate.d/log_name 有对应配置

depmod

  • -A 新的模块写入
  • -n 不写入,输出屏幕
  • -e 显示已加载的不可执行模块

lsmod

  • 显示加载模块

modinfo

  • -a [module_name|filename] :仅列出作者名称;
  • -d :仅列出该 modules 的说明 (description);
  • -l :仅列出授权 (license);
  • -n :仅列出该模块的详细路径。

insmod,rmmod,modprobe

rpm

  • rpm -ivh *.rpm #安装
  • rpm -Uvh #安装的更新,未安装的安装
  • rpm -Fvh #已安装的才升级
  • rpm -qa #列出已安装软件

yum

  • yum install xxx
  • yum list xxx #列出package详情
  • yum search rpm #
  • yum update xxx
  • yum -y upgrade #更新
  • yum clean [packages|headers|all] #清除相关rpm文件
  • yum remove xxx
  • LANG=C yum grouplist #列出可用软件群组
  • yum groupinfo 软件群组名
  • yum groupinstall [–installtoot=/path/]
  • yum groupremove 软件群组名
  • yum repolist all #列出源
如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2015/09/16/Niaoge-Linux-Desktop-Guide-notes-daemon.html