Shell学习:子Shell概念
shell环境每个shell进程有一个自己的运行环境,不同的Shell进程有不同的Shell环境。Shell解析命令行、调用命令行的过程都在这个环境中完成。 调用shell程序时,会读取配置文件来初始化Shell环境。 读取配置文件情况分为两种: 用户登录启动的shell 非用户登录启动的shell 什么是子shell所谓子shell,即从当前shell环境中新开了一个shell环境,这个新开的shell环境就是子shell,而开启子shell的环境称为该子shell的父shell。 子Shell的本质可以理解为Shell的子进程,子进程的概念是由父进程的概念引申而来的,在Linux系统中,系统运行的应用程序几乎都是从init(pid为1的进程)进程派生而来的,所有这些应用程序都可以视为init进程的子进程,而init则为它们的父进程。通过执行pstree -a命令就可以看到init及系统中其他进程的进程树信息: 12345678910111213141516171819202122232425262728293031[root@test ~]# pstree...
《新编淡水鱼饲养百科》读书笔记
《宠物生活》编委会 编 / 2010-7 /...
服务端入侵排查
常见入侵手段挖矿 表象:CPU增高、可疑定时任务、外联矿池IP。 告警:威胁情报(主要)、Hids、蜜罐(挖矿扩散时触发) 动作:通过CPU确认异常情况→ 确认可疑进程 → 检查定时任务、主机服务、守护进程→结束病毒进程、删除病毒文件→加固。 WebShell 表象:业务侧应用逻辑漏洞(允许上传脚本等造成命令执行)或者开源软件低版本造成(fastjson等)导致, 通常为反弹shell、高危命令执行,同时存在内网入侵、恶意程序传播、数据盗取等行为。 告警:Hids(基于主机型入侵检测系统)、流量监控设备 动作: 确认Webshell文件内容与可用性→ 酌情断网,摘掉公网出口IP→ 通过日志等确认Webshell文件访问记录→ 确定Webshell入侵来源,是业务逻辑漏洞导致、开源组件漏洞还是弱口令与未授权等情况导致 →排查应用其他机器情况,全盘扫描Webshell文件→...
Linux:服务器故障排查思路
概述遇到服务器故障,问题出现的原因很少可以一下就能找到。我们基本上都会从以下步骤入手: 搞清楚问题的前因后果 有谁在服务器上? 故障发生之前发生了什么? 当前运行的进程有哪些? 监听的网络服务有哪些? 查看cpu、内存、磁盘使用情况 查看硬件情况 查看I/O性能 查看挂载点和文件系统 查看内核、中断和网络 查看系统日志和内核消息 查看定时计划情况 查看具体应用的系统日志 搞清楚问题的前因后果必须搞清楚的问题有: 故障的表现是什么?无响应?报错? 故障是什么时候发现的? 故障是否可重现? 有没有出现的规律(比如每小时出现一次) 最后一次对整个平台进行更新的内容是什么(代码、服务器等)? 故障影响的特定用户群是什么样的(已登录的, 退出的, 某个地域的…)? 基础架构(物理的、逻辑的)的文档是否能找到? 是否有监控平台可用?(比如Nagios、Zabbix等) 是否有日志可以查看?...
Nginx:rewrite模块
参考:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html Rewrite对应URL Rewrite,即URL重写,就是把传入web的请求重定向到其他URL的过程。 nginx的重写模块rewrite是一个简单的正则表达式匹配与一个虚拟堆叠机结合,依赖于pcre库(这也为我们之前安装的时候为什么需要安装pcre和pcre-devel软件的原因)。 rewrite会根据相关变量重定向和选择不同的配置,从一个 location跳转到另一个 location,不过这样的循环最多可以执行10次,超过后 nginx将返回500错误。 说明: 功能:实现URL的重写,通过Rewrite规则,可以实现规范的URL,根据变量来做URL转向及选择配置。 作用范围:server{},location{},if{} 优先级:执行server块的rewrite指令 > 执行location匹配...
Linux:vmstat命令
本文只总结一些常用的用法,更详细的说明见man vmstat和 vmstat --help。 [toc] vmstat命令vmstat是Virtual Meomory Statistics(虚拟内存统计)缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。 语法格式1vmstat [options] [delay [count]] delay:刷新时间间隔。如果不指定,只显示一条结果。 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。 不加任何参数: 1234[root@test ~]# vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 5 0 0 259312 142388...
Linux:iptables详解
概述iptables是一种Linux系统下的数据包过滤工具,但非真正意义上的防火墙,可以理解喂一种客户端代理,将用户的安全配置设定到底层的框架中,这个框架叫netfilter。 iptables位于用户空间,netfilter位于内核空间。 术语 术语 说明 accept 放行 reject 拒绝 drop 放弃 SNAT 源地址转换 DNAT 是SNAT的一种特殊形式,适用于动态的、临时会变的ip上 MASQUERADE 目标地址转换 chain 链 table 表 rule 规则 工作机制iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。 规则链规则链(chain)名包括(也被称为五个钩子函数(hook functions)): INPUT链 :处理输入数据包。 OUTPUT链 :处理输出数据包。 FORWARD链 :处理转发数据包。 PREROUTING链...
Linux命令分类
...
《浪潮之巅》读书笔记
吴军 / 电子工业出版社 / 2011-8 笔记 要做到高回报必须首先选对题目。 其次,创业的题目不能和主流公司的主要业务撞车。 死亡推动着生命进化和变迁,旧的不去,新的不来。现在,新的人和新的技术,在不久的将来,也会逐渐成为旧的,也会被淘汰。 凡是现实的都是合理的,凡是合理的都是现实的(All that is real is rational; and all that is rational is real)。 托尔斯泰讲,幸福的家庭都是相似的,不幸的家庭各有各的不幸。在信息产业中,这句话要反过来讲,成功的公司各有各的绝招,失败的公司倒是有不少共同之处。 英特尔公司做事情非常专注,知道今天,它一直集中精力于个人微机的处理器上。每一代产品的研发都集中大量的人力和资金,每一次都是只能成功不能失败。 Java有一个无法克服的先天不足,就是速度太慢。 历史上,任何流通性过剩都会大大扩大经济规模,直到形成新的泡沫。 一个人类群星闪耀的时刻出现以前,必然有漫长的岁月流逝而去。...
Nagios:监控脚本
监控磁盘12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#!/bin/shiostat=`which iostat 2>/dev/null`bc=`which bc 2>/dev/null`function help {echo -e "\n\tThis plugin shows the I/O usage of the specified disk, using the iostat external program.\n\tIt prints three statistics: Transactions per second (tps), Kilobytes per second\n\tread from the disk (KB_read/s) and and written to the disk...