FlayerVEO 学无止境 - 服务 http://flayerveo.com/index.php/category/server Linux 监控 相关命令 http://flayerveo.com/index.php/archives/2648/ 2020-02-15T14:26:15+00:00 CPU相关: ```shell lscpu 查看CPU信息 uptime 查看系统负载 (运行多长时间,有多少用户,平均负载) top 实时查看当前系统负载 vmstat 1 实时查看当前系统负载,并1秒刷新一次 mpstat 1 查看CPU信息,并1秒刷新一次 ``` 内存相关: ```shell free -m 查看内存占用信息 ``` 硬盘相关: ```shell df -h 以易读的方式查看磁盘使用量 df -i 以inode模式来显示磁盘使用情况 iotop 查看磁盘读写详细速度与占比(需要先yum -y install iotop) ``` 网络相关: ```shell netstat -tunlp 查看tcp与udp服务端口 netstat -anlpt 查看tcp服务端口 ss -tunlp 查看tcp与udp服务端口 ss -anlpt 查看tcp服务端口 ``` Linux Zabbix 指令监控 http://flayerveo.com/index.php/archives/2647/ 2020-02-15T14:25:37+00:00 客户端: 进入zabbix_agentd.conf配置文件: 在第293行设置指令: 格式: UserParameter=键值,指令 ![](http://www.flayerveo.com/usr/uploads/2020/02/1877280901.png) 重启zabbix客户端服务: ![](http://www.flayerveo.com/usr/uploads/2020/02/2627969264.png) 服务端调用: 格式:zabbix_get -s IP地址 -p 客户端zabbix端口 -k 指令键值 ![](http://www.flayerveo.com/usr/uploads/2020/02/4186561461.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1392619125.png) 服务端通过WEB管理监控指令: 找到对应需要监控主机的应用集: ![](http://www.flayerveo.com/usr/uploads/2020/02/429842383.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/950306409.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/4095667661.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/3267514231.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/3659723352.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/440119376.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/2759038003.png) 设置警告的触发器: ![](http://www.flayerveo.com/usr/uploads/2020/02/3742601367.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1424391759.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/2709664814.png) 添加图形: ![](http://www.flayerveo.com/usr/uploads/2020/02/3560289290.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/3464274594.png) Linux Zabbix Agent客户端安装使用 http://flayerveo.com/index.php/archives/2630/ 2020-02-15T14:23:36+00:00 服务端的客户端启动: ```shell /etc/init.d/zabbix_agentd start ``` ![](http://www.flayerveo.com/usr/uploads/2020/02/27354413.png) 非: ```shell /etc/init.d/iptables stop setenforce 0 yum localinstall zabbix-agent.rpm ``` ![](http://www.flayerveo.com/usr/uploads/2020/02/4283059423.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/2695424669.png) ```shell /etc/init.d/zabbix_agentd start ``` 创建hostname: ![](http://www.flayerveo.com/usr/uploads/2020/02/2397302245.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1668654541.png) web名称:hostname 可见名称:随便取,给自己看 ![](http://www.flayerveo.com/usr/uploads/2020/02/1816321489.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/186404892.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/41500770.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1055468056.png) 查看监控数据: ![](http://www.flayerveo.com/usr/uploads/2020/02/4052204634.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1122873587.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/2582149767.png) Linux Zabbix 网页配置 http://flayerveo.com/index.php/archives/2617/ 2020-02-15T14:21:33+00:00 ![](http://www.flayerveo.com/usr/uploads/2020/02/430510296.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1467092155.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1168334875.png) 账户名:Admin 密码:zabbix ![](http://www.flayerveo.com/usr/uploads/2020/02/3593811669.png) 修改中文: ![](http://www.flayerveo.com/usr/uploads/2020/02/692888462.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/659981466.png) Linux Zabbix 环境配置 http://flayerveo.com/index.php/archives/2610/ 2020-02-15T14:20:41+00:00 第一步:关闭安全配置 ```shell /etc/init.d/iptables stop chkconfig iptables off 使用getenforce查看selinux状态 vi /etc/selinux/config 设置SELINUX=disabled reboot重启系统 ``` 第二步:部署LNMP环境 设置服务开机启动: ![](http://www.flayerveo.com/usr/uploads/2020/02/434830266.png) 第三步:准备Zabbix 添加依赖包: ```shell yum -y install net-snmp-devel unixODBC-devel openssl-devel java-devel curl-devel OpenIPMI rpm -ivh OpenIPMI-devel-2.0.16-14.el6.x86_64.rpm --nodeps --force rpm -ivh fping* ``` 添加用户: ```shell useradd zabbix -s /sbin/nologin ``` 第四步:解压Zabbix,编译安装: ```shell mkdir -p /application/tools cd /application/tools ``` 解压包: ![](http://www.flayerveo.com/usr/uploads/2020/02/444621477.png) 编译安装: ```shell cd zabbix-3.0.3 ./configure --prefix=/application/zabbix-3.0.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl make && make install ln -s /application/zabbix-3.0.3 /application/zabbix ``` 第五步:配置MYSQL: ```shell create database zabbix character set utf8 collate utf8_bin; grant all on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix'; flush privileges; ``` ![](http://www.flayerveo.com/usr/uploads/2020/02/2628244581.png) 导入数据库(注意导入顺序!): ```shell use zabbix; source /application/tools/zabbix-3.0.3/database/mysql/schema.sql; source /application/tools/zabbix-3.0.3/database/mysql/images.sql; source /application/tools/zabbix-3.0.3/database/mysql/data.sql; ``` 退出后再外部命令行输入: ```shell #cp /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 #ldconfig ``` 第六步:复制web代码配置PHP: ```shell mkdir -p /usr/local/nginx/html/zabbix cp -a /application/tools/zabbix-3.0.3/frontends/php/* /usr/local/nginx/html/zabbix chmod -R 777 /usr/local/nginx/html/zabbix ``` 进入php.ini: ```shell vi /usr/local/php/php.ini ``` 设置 ```shell max_execution_time=300 max_input_time=300 post_max_size=16M date.timezone=Asia/Shanghai always_populate_raw_post_data = -1 ``` 重启PHP: ```shell killall php-fpm /usr/local/bin/php-fpm ```   第七步:配置nginx及启动zabbix服务端: 复制test.txt中的内容直接输入命令行 ![](http://www.flayerveo.com/usr/uploads/2020/02/156047827.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/322639286.png) 重启nginx: ```shell killall nginx /usr/local/nginx/nginx ``` zabbix服务配置: 服务文件配置: ```shell sed -i -e '77a DBHost=127.0.0.1' -e '111a DBPassword=zabbix' /application/zabbix/etc/zabbix_server.conf ``` ![](http://www.flayerveo.com/usr/uploads/2020/02/2087919368.png) 复制启动脚本: ![](http://www.flayerveo.com/usr/uploads/2020/02/1550291304.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/836877322.png) 修改启动脚本: sed -i 's#BASEDIR=/usr/local#BASEDIR=/application/zabbix#' ![](http://www.flayerveo.com/usr/uploads/2020/02/662486270.png) 启动脚本: ![](http://www.flayerveo.com/usr/uploads/2020/02/3378329534.png) 检查是否搭起: ![](http://www.flayerveo.com/usr/uploads/2020/02/1815334045.png) Linux Zabbix 介绍 http://flayerveo.com/index.php/archives/2598/ 2020-02-15T14:17:11+00:00 zabibx主要由2部分构成zabbix server(服务端)和zabbix agent(客户端),可选组件zabbix proxy(用于分布式监控的组件) zabbix server可以通过SNMP,zabbix agent,fping,端口监视等方法对远程服务器或网络状态进行监控,数据收集等功能。 zabbix的主要监控范畴: ![](http://www.flayerveo.com/usr/uploads/2020/02/315925255.png) Linux 日志 http://flayerveo.com/index.php/archives/2596/ 2020-02-15T14:16:17+00:00 三类日志: 用户日志 系统日志 程序日志 ![](http://www.flayerveo.com/usr/uploads/2020/02/1431900025.png) 用户日志: secure:主要记录用户与组的注册与注销 utmp和wtmp: 1.当前登录用户的信息记录在文件utmp中;utmp可被who、w、users和finger命令使用。 2.登录和退出记录在文件wtmp中;数据交换、关机以及重启的信息也都记录在wtmp文件中;wtmp文件被命令last和ac使用。 3.所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析与实践有极大关系。 4.这两个文件是二进制文件,不能使用tail、cat之类的命令来访问。 ![](http://www.flayerveo.com/usr/uploads/2020/02/1281690343.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/1467874223.png) 系统日志: 由系统服务rsyslogd统一管理,用于管理日志文件 主要程序:/sbin/rsyslogd 配制文件:/etc/rsyslog.confg 主要用于查看系统详细信息的日志文件:/var/log/messages ![](http://www.flayerveo.com/usr/uploads/2020/02/2008113683.png) ![](http://www.flayerveo.com/usr/uploads/2020/02/4107132597.png) 日志记录的格式: ![](http://www.flayerveo.com/usr/uploads/2020/02/945635948.png) 程序日志: ![](http://www.flayerveo.com/usr/uploads/2020/02/2570763246.png) Linux 指令大全 http://flayerveo.com/index.php/archives/2588/ 2020-02-15T14:14:31+00:00 文字转图形: ctrl alt f7 图形转文字:ctrl alt f2 文件合并: ```shell a.conf(文件1) b.conf(文件2) cat a.conf b.conf >(新文件) 合并的文件必须是同一类型的文件 其他: man ascii 查看ascii码表 ``` 系统信息 ```shell arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 uname –a 显示计算机所有信息 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w 将时间修改保存到 BIOS 关机 (系统的关机、重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销 ``` 文件和目录 ```shell cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls -n 显示文件suid和guid ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1) lstree 显示文件和目录由根目录开始的树形结构(2) mkdir dir1 创建一个叫做 'dir1' 的目录' mkdir dir1 dir2 同时创建两个目录 mkdir -p /tmp/dir1/dir2 创建一个目录树 rm -f file1 删除一个叫做 'file1' 的文件' rmdir dir1 删除一个叫做 'dir1' 的目录' rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 rm -rf dir1 dir2 同时删除两个目录及它们的内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 file2 复制一个文件 cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a /tmp/dir1 . 复制一个目录到当前工作目录 cp -a dir1 dir2 复制一个目录 ln -s file1 lnk1 创建一个指向文件或目录的软链接 ln file1 lnk1 创建一个指向文件或目录的物理链接 touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) tac file1 从最后一行开始反向查看一个文件的内容 more file1 查看一个长文件的内容 head -2 file1 查看一个文件的前两行 tail -2 file1 查看一个文件的最后两行 tail –t filename 实时监控一个文件 ``` DEB 包 (Debian, Ubuntu 以及类似系统) ```shell dpkg -i package.deb 安装/更新一个 deb 包 dpkg -r package_name 从系统删除一个 deb 包 dpkg -l 显示系统中所有已经安装的 deb 包 dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 ``` APT 软件工具 (Debian, Ubuntu 以及类似系统) ```shell apt-get install package_name 安装/更新一个 deb 包 apt-cdrom install package_name 从光盘安装/更新一个 deb 包 apt-get update 升级列表中的软件包 apt-get upgrade 升级所有已安装的软件 apt-get remove package_name 从系统删除一个deb包 apt-get check 确认依赖的软件仓库正确 apt-get clean 从下载的软件包中清理缓存 apt-cache search searched-package 返回包含所要搜索字符串的软件包名称 ``` 文件系统分析 ```shell badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块 fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性 fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性 fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 ``` 备份 ```shell dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 restore -if /tmp/home0.bak 还原一个交互式备份 rsync -rogpav --delete /home /tmp 同步两边的目录 rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 ``` Linux 用户注销 http://flayerveo.com/index.php/archives/2587/ 2020-02-15T14:13:05+00:00 命令行界面: logout exit 图形化界面: ![](http://www.flayerveo.com/usr/uploads/2020/02/2634543073.png) 快捷键:Ctrl+Alt+Backpace (充当快速重启) Linux 用户与组管理 http://flayerveo.com/index.php/archives/2585/ 2020-02-15T14:12:27+00:00 #Linux用户与组管理 ##用户管理 1)useradd useradd 用于添加用户账号或设置添加用户使用的默认信息。格式如下: ```shell 格式1:useradd [options] (LOGIN) 格式2:useradd -D 格式3:useradd -D [options] ``` 说明: 格式1:用于添加用户账号,LOGIN 为用户登录账号 格式2:用于显示添加用户使用的默认信息 格式3:用于设置添加用户使用的默认信息 选项说明: ```shell -u UID 指定新用户的 UID,默认为使用当前最大的 UID 加1 -g GROUP 指定新用户的主组 -G GROUP1[,GROUP2,…[,GROUPN]]] 指定新用户的附加组 -d HOME_DIR 指定新用户的登录目录 -s SHELL 指定新用户使用的 Shell,默认为 bash -p 设置密码 -M 不建立使用者目录(自家目录) ``` 改变用户默认值选项: ```shell 在配置文件 /etc/login.defs 和 /etc/default/useradd 中存放了用户默认数据。 ``` 使用举例: ```shell 1、创建一个新用户 newuser,同时创建用户自家目录 # useradd newuser 2、创建一个新用户 tom,同时加入 staff 附加组中 # useradd -G staff tom 3、创建一个新用户 webmaster,不创建用户自家目录,指定登录目录 /www,同时加入 apache 附加组中 # useradd -d /www -M -G apache webmaster ``` 创建用户不需要额外输入密码的方式: ```shell 1.useradd UserName -p Password //这里的password需要时密文 2.adduser UserName echo "UserName:Password" | chpasswd //虽然分为两句但也不用额外输入 ``` useradd 和 adduser useradd: 如果不加参数创建的是三无用户,三无: 1.无HOME目录 2.无密码 3.无系统Shell adduser: 如果不加参数,系统会用交互式会话向你获取用户信息 2)usermod usermod 用于修改系统已存在的组账号。格式如下:usermod [options] LOGIN 其中: LOGIN:要修改的用户名 选项: -d、-e、-f、-g、-G、-s、-u 的含义与 useradd 选项的含义相同 选项说明: ```shell -l NEW_LOGIN:更改用户登录名为 NEW_LOGIN -e EXPIRE_DATE 指定用户的登录失效时间,格式为 YYYY-MM-DD 2017-03-21 -f INACTIVE 指定在密码过期后多少天即关闭该账号, 默认值为 -1,即不做限制 -m 创建新用户的自家目录,默认值 -M 不创建新用户的自家目录 -b BASE_DIR 定义使用者所属目录的上级目录。用户名称会附加在BASE_DIR后面用来建立新使用者的目录。 当然使用-d后则此选项无效。 -g GROUP 定义新账号起始组名或GID。组名必须为现已存在的组名。GID也必须为现已存在的GID。 -s SHELL 定义用户默认使用的 shell。 -L:锁定用户账号 -U:对用户账号解除锁定 ``` 举例: ```shell 1、将 newuser2 添加到组 staff 中 # usermod -G staff newuser2 2、修改 newuser 的用户名为 newuser1 # usermod -l newuser1 newuser 3、锁定账号 newuser1 # usermod -L newuser1 4、解除对 newuser1 的锁定 # usermod -U newuser1 ``` 3)userdel userdel 用于删除系统已存在的组账号。格式如下:userdel [-r] LOGIN 其中: LOGIN:为要删除的用户账号名 -r:同时删除用户的自家目录和 mail 的假脱机文件 例如: ```shell 1、删除用户 webmaster # userdel webmaster 2、删除用户 newuser1,同时删除其自家目录 # userdel -r newuser1 ``` ##组管理 1)Groupadd groupadd 用于添加组账号。格式如下:groupadd [-g GID] GROUP 其中: GROUP:是要添加的组名 -g:用于指定 GID,默认为使用当前最大的 GID 加1 举例: 添加一个新组 leader ```shell # groupadd leader ``` 2)groupmod groupmod 用于修改系统已存在的组账号。格式如下:groupmod [options] GROUP 其中: GROUP:为要修改的组账户名 常用选项: ```shell -g GID:重新指派 GID -n NEW_GROUP:更改组名为 NEW_GROUP 举例: 将 leader 组更名为 leaders # groupmod -n leaders leader 将 leaders 组的 GID 改为 3000 # groupmod -g 3000 leaders ``` 3)groupdel groupdel 用于删除系统已存在的组账号。格式如下:groupdel GROUP 其中:GROUP 为要删除的组账户名 例如:删除 leaders 组 ```shell # groupdel leaders ``` 4) gpasswd命令 功能:管理组中的用户 用法:gpasswd [-a username] groupname 参数: ```shell -a:添加用户到组 -d:从组删除用户 -A:指定管理员 -r:删除密码 -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组 ```