0

Linux:使用lnav查看日志

Posted by Alan on April 22, 2017 in Linux |

通常我们会使用tail -f, more, cat等指令来查看日志文件,今天推荐一款lnav,它具有直接查看压缩文件,高亮显示等优异的功能 安装方法:

Tags: ,

0

Linux小脚本片断

Posted by Alan on November 16, 2016 in Linux |

1.在进行服务器优化时要精简开机启动的服务,只需保留必要的几个,如crond, network, rsyslog, sshd这几个服务: 脚本一、 脚本二、 2.通常在生产环境会关闭SElinux: 3.DDoS相关 4.开机主引导记录MBR备份 网站一键配置

Tags: , ,

0

OpenVPN学习笔记

Posted by Alan on November 7, 2016 in Linux |

SSL VPN开源软件:OpenVPN(使用OpenSSL协议) IPSEC VPN开源软件:OpenSwan PPTP, L2TP, IPSEC, SSH, LVS, TUN(ipip) 安装步骤 配置VPN服务器时间同步 为了让VPN连接不会失败,应确保服务器之间时间上的同步 定时任务可能过crontab -l进行查看 部署安装OpenVPN服务器 注:想要确定指定是否正确执行,输入echo $?看是否返回0即可 执行 which openvpn,返回如下表示OpenVPN安装成功 /usr/local/sbin/openvpn 常见问题 1.configure: error: OpenSSL Crypto headers not found. 这时由于OpenVPN依赖于OpenSSL,应执行yum install openssl* -y安装OpenSSL完整包 route tcpdump

Tags: , , ,

Python自动化运维学习笔记

Posted by Alan on November 6, 2016 in Linux |

Python基础 *args, **kw 装饰器 @classmethod 文件处理 Python DB API https://www.python.org/dev/peps/pep-0249/ MySQL Connector: https://sourceforge.net/projects/mysql-python/ Mac: 运维常用命令 ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap psutil 技巧一:建议安装方法

技巧二:配置Tab方便Python命令行中的操作 参见Python基础知识及常见问题 部分 Shell下查看已使用内存和总内存的方法

IPy

 

Tags: , ,

0

SVN学习笔记

Posted by Alan on November 2, 2016 in Linux |

安装 通过rpm -qa subversion可确认是否已安装 小帖士:如需保留yum安装包的话只需修改/etc/yum.conf中的keepcache的值即可 配置并启动 创建两个目录,分别用于存储数据和用户、密码 使用svnserve来启动SVN服务,相关参数可通过svnserve –help来查看用途 创建版本库 创建版本库使用命令svnadmin 通过tree /application/svndata可以查看到版本库基本的目录结构 修改配置文件conf/svnserve.conf(别忘了先做好备份哦) 通过diff指令对比备份文件可查看修改的内容 修改完配置文件需重启SVN使配置文件生效 使用了pid file的话可以通过如下方法重启 接下来将conf文件夹下的passwd和authz文件拷贝到/application/svnpasswd目录下 注:为保持安全性可将拷贝到/application/svnpasswd/下的这两个文件设置700的权限 在passwd中配置用户名和密码,按照 user = password一行一个用户的方式添加即可 然后在authz文件中定义组设置权限: 基本格式 如 接下来就需要在本地下载SVN客户端,Windows下一般用TortoiseSVN (常用操作有SVN Update(首次为Checkout)和SVN Commit,缺省目录%APPDATA%\Subversion\auth) Linux下客户端的操作方法 Linux下修改SVN IP地址(通过svn info可查看详细信息) SVN下可能过钩子来在提交前、提交后进行一些操作,默认在hooks文件夹下有如下模板,去除后面的.tmpl即可使用 post-commit.tmpl post-lock.tmpl post-revprop-change.tmpl post-unlock.tmpl pre-commit.tmpl pre-lock.tmpl pre-revprop-change.tmpl pre-unlock.tmpl start-commit.tmpl 注:从Windows上传的文件转换文本格式用dos2unix指令,钩子文件要加执行权限 以下是一个通过钩子来传送文件的简单示例 其它: branch, tag, trunk svnlook 线上更新代码:先上传到临时目录,再执行mv或者使用ln软链接 Jira, Mantis

Tags: , ,

0

Linux CentOS内核、I/O优化

Posted by Alan on July 11, 2016 in Linux |

资源限制/etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 * 表示对所有用户有效 soft 指的是当前系统生效的设置 hard 表明系统中所能设定的最大值 nofile 表示所限制的资源是打开文件的最大数目 65535 就是限制的数量 磁盘调度策略 查看IO调度方法 cat /sys/block/devname/queue/scheduler #devname为设备名,如sda等 noop anticipatory deadline [cfq] noop(No operation电梯式调度策略) noop实现了一个FIFO队列,它像电梯的工作方法一样对I/O请求进行组织,当有一个新的请求合并到最近的请求之后,以此来保证请求同一介质。NOOP倾向饿死读而利于写,因此noop对于闪存设备、RAM及嵌入式系统是最好的选择。 deadline(截止时间调度策略) Deadline确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限。这样就防止了写操作因为不能被读取而饿死的现象,deadline对数据库类应用是最好的选择。 anticipatory(AS, 预料I/O调度策略) 本质上与deadline一样,但在最后一次读操作后,要等待6ms,才能继续进行对其它I/O请求进行调度。它会在每个6ms中插入新的I/O操作,而会将一些小写入流合并成一个大写入流,用写入延时换取最大 的写入吞吐量。AS适合于写入较多的环境,比如文件服务器,AS对数据库环境表现很差。 CFQ(Complete Fairness Queueing完全公平排队I/O调度程序) 修改方法: 如 echo deadline > /sys/block/sda/queue/scheduler 文件系统对性能的影响 ext3/ext4系统的挂载参数:/etc/fstab 日志记录方式:data = writeback | ordered | journal […]

Tags: ,

0

MariaDB内存溢出导致服务自动停止

Posted by Alan on May 24, 2016 in Linux |

最近公司一个网站一个月内出现过几次网站无法访问的问题,都是数据库的问题 Error establishing a database connection 这个网站是构建在CentOS 7上的Wordpress,这本身并没有问题。数据库使用的是默认的MariaDB,查看状态处于停止状态,启动服务则可正常访问。查看历史记录并没有对数据库服务被误停止这样的操作。 而通过journalctl -u mariadb发现了问题 很明显错误日志写入了/var/lib/mysql/iZ23l4d00udZ.err文件,进一步查看 可以看出服务由于内存溢出(Out of memory,简称OOM)而被关闭,这可能与配置文件中innodb_buffer_pool_size的配置以及内存本身占用都存在着关系。 Alan目前还没有好的解决方案,所以暂时在crontab中添加了一段每分钟对服务状态进行检查,若出现问题则重新启动数据库服务

Tags: ,

0

阿里云ECS Linux服务器如何实现挂载

Posted by Alan on May 13, 2016 in Linux |

阿里云上购买服务器可在系统盘之外添加数据盘,但Linux不像Windows那样可以在后台直接挂载,而是需要手动执行挂载操作: 第一、检查阿里云服务器数据盘情况 利用fdisk -l命令,检查当前VPS的数据硬盘情况。 这里我们可以看到有100GB数据盘没有挂载,肯定需要利用起来的。 第二、挂载阿里云数据硬盘 输入”fdisk /dev/xvdb“,然后根据下图的提示,输入n,p,1(Alan在挂载时显示为2-5,因此输入2),回车,回车,wq,保存退出。 完毕之后,我们在输入fdisk -l,已经可以看到数据盘100GB已经被分区。 第三、格式化分区及挂载目录 A – 格式化挂载数据硬盘分区 B – 创建目录挂载 如果我们安装的是LNMP/AMH一键包,那默认是在HOME目录下;如果是安装WDCP面板,那需要安装在WWW目录下,我们需要先检查是否有对应的目录,没有需要mkdir创建目录。(Alan操作时对应盘为/dev/xvdb2) 对应上面的home目录是我们确定的路径(请务必在挂载前备份好home目录中的内容),如果是WWW那就需要更换。 第四、执行mount -a挂载 输入mount -a命令,直接挂载,然后df -h检查看看是否成功。 这样,我们可以看到阿里云服务器ECS已经挂载完毕,我们可以放心的对安装环境包。 fdisk参数详解: a Toggles a flag indicating if the partition is bootable b Edits the disklabel used by BSD Unix systems c Toggles the DOS compatibility flag d Deletes the partition l Lists […]

Tags:

0

Linux Shell脚本相关知识

Posted by Alan on May 5, 2016 in Linux |

一、Vim相关 vim的配置文件/etc/vimrc 常用设置: syntax on    高亮显示(syntax off) set number 添加行号(set nonumber) set autoindent 自动缩进(也可以是更严格的set cindent) 二、Shell相关 shell文件前通常加入#!/bin/bash,echo -n在输出时不换行 1.Shell命令路径环境变量设置文件 全局: /etc/profile /etc/profile.d/* /etc/bashrc 个人: $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile 在命令行输入set可查看所有的环境变量 定义变量如var1=value1,等号两边不可以加空格,变量名为20个字符以内的数字、字母和下划线组成 相用另一个语句的输出值有两种方式,如: stdin输入(<,<<)、stdout输出(>,>>) 关闭>输出set -C,开启set +C或使用>| stderr错误输出 2>, 2>> 不论正确或错误均输出到文件中 > filename 2> &1 或直接使用 &> 管道命令 | 数学运算: 赋值时还可以使用 Shell运算原生通常仅支持整数,对浮点数的支持存在问题,如需shell处理小数,可以尝试z shell(zsh) 假如不使用z shell,也可以使用管道命令加bc来进行浮点数的计算(如若系统未内置bc请自行安装),如 使用bc可还可以用行内赋值的方法,其中EOF为自定义开始结束符,中间包含计算的语句 […]

Tags: ,

0

Nginx基础知识和常见问题

Posted by Alan on May 4, 2016 in Linux |

Nginx的基本支持 yum -y install gcc gcc-c++ autoconf automake Nginx的常用组件 yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel 安装Nginx 到官网http://nginx.org/下载最新的稳定版本(如nginx-1.10.0),上传到服务器 常见问题一、make时出现如下报错: make: *** No rule to make target build’, needed by default’. Stop. 请安装本文开始处的组件(openssl openssl-devel pcre pcre-devel),然后执行 make clean ./configure 此时再执行make就恢复正常了 configue时可以添加参数来修改安装路径等相关内容,可执行./configure –help来查看所有选项。安装的默认目录为/usr/local/nginx/ Nginx的主配置文件为nginx.conf,以下为从网站摘抄的关于该配置文件的详细解释 如何获取Nginx的进程号(pid)? 通过以下命令可直接打印出进程号: 也可以通过nginx.conf配置文件中pid对应文件来查看 通过这个pid我们可以进行关闭进程等操作,如平滑变更Nginx配置可使用kill -HUP 1126(假定pid为1126) 开启Nginx Status 在/etc/nginx/conf.d/default.conf的server配置中加入 重启nginx(service nginx restart) […]

Tags:

Copyright © 2012-2018 记录点滴生活 | Alan Hou的个人博客 All rights reserved.