批量结束linux进程

这里 php timer.php 进程是使用swoole来搞的一个crond服务,用来定时采集一些数据

用ps显示的有以下进程

root 6583 0.0 0.2 219676 4872 ? Ss 10:46 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www 7076 2.7 1.0 304928 19920 ? S 11:32 0:05 php-fpm: pool www
www 7077 3.0 1.4 312964 26940 ? S 11:32 0:05 php-fpm: pool www
www 7117 2.5 1.2 310668 23724 ? S 11:35 0:01 php-fpm: pool www
root 7121 0.0 0.2 331188 4500 ? Ssl 11:36 0:00 php timer.php
root 7122 0.0 0.2 257012 4168 ? S 11:36 0:00 php timer.php
root 7124 0.0 0.2 242940 5060 ? S 11:36 0:00 php timer.php
root 7125 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7126 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7127 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7128 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7129 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7130 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 7131 0.0 0.2 243052 4504 ? S 11:36 0:00 php timer.php
root 25224 0.0 0.0 0 0 ? S< 2016 0:00 [kcopyd]
root 25225 0.0 0.0 0 0 ? S< 2016 0:00 [bioset]
root 25226 0.0 0.0 0 0 ? S< 2016 0:00 [dm-thin]
root 25227 0.0 0.0 0 0 ? S< 2016 0:00 [bioset]
root 25235 0.0 0.0 0 0 ? S< 2016 0:00 [xfsalloc]
root 25236 0.0 0.0 0 0 ? S< 2016 0:00 [xfs_mru_cache]
root 25804 0.0 0.0 0 0 ? S< 2016 0:00 [kworker/0:0H]
root 26091 0.0 0.0 0 0 ? S< 2016 0:47 [kworker/0:1H]

单独结束一个进程的时候,可以使用 kill -9 进程ID,而如果有许多个同命令的进程的话,则可以同样使用此命令进行批量结束

kill `ps -ef|grep 'php timer.php'| grep -v grep|awk '{print $2}'`

其中

ps -ef|grep 'php timer.php'| grep -v grep|awk '{print $2}'

是用来过滤所有相关进程id

gitlab修改时区

刚装的系统,默认时间是UTC,比北京时间少了8个小时.

修改 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml 配置文件中的 time_zone : 'Beijing'

重启gitlab 即可

#gitlab-ctl restart

Linux系统排查

常见工作中,计算机系统的资源主要包括CPU,内存,硬盘以及网络,过度使用这些资源将使系统陷入困境。本系列一共四篇博文,结合我在实习期间的学习,介绍一些常见的Linux系统排障工具及方法。

第1篇——内存篇

第2篇——CPU篇

第3篇——磁盘I/O篇

第4篇——网络篇

 

事实上,当上述服务器系统资源中的任何一个遭遇瓶颈,都会带来服务器性能的下降,典型的症状就是系统运行迟缓。

本文从以下几个角度介绍Linux系统内存相关的排查。

1. 内存的使用率如何查看,使用率真的很高吗

2. 内存用在哪里了

3. 内存优化可以有哪些手段

linux screen 命令详解

一、背景

系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。

二、简介

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。 Continue reading

如何用十条命令在一分钟内检查Linux服务器性能

如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。
概述

通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。

  • uptime
  • dmesg | tail
  • vmstat 1
  • mpstat -P ALL 1
  • pidstat 1
  • iostat -xz 1
  • free -m
  • sar -n DEV 1
  • sar -n TCP,ETCP 1
  • top
  • gtop

其中一些命令需要安装sysstat包,有一些由procps包提供。这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,也就是所谓的USE方法。 Continue reading

让终端走代理的几种方法

方法1:

在终端中直接运行命令

export http_proxy=http://proxyAddress:port

这个办法的好处是简单直接,并且影响面很小(只对当前终端有效)。

方法2:

把代理服务器地址写入shell配置文件.bashrc或者.zshrc

直接在.bashrc或者.zshrc添加下面内容

export http_proxy="http://localhost:port" 
export https_proxy="http://localhost:port"

以使用shadowsocks代理为例,ss的代理端口为1080,那么应该设置为

export http_proxy="http://127.0.0.1:1080" 
export https_proxy="http://127.0.0.1:1080"

localhost就是一个域名,域名默认指向 127.0.0.1,两者是一样的。

然后ESC:wq保存文件,接着在终端中执行

source ~/.bashrc

或者退出当前终端再起一个终端。 这个办法的好处是把代理服务器永久保存了,下次就可以直接用了。 Continue reading

gitlab安装-设置1-修改仓库(repositories)的位置

安装好gitlab后,要将仓库(repositories)放在一个大硬盘上,在ubuntu服务器上安装的默认位置为 /var/opt/gitlab/git-data/ 目录,需要修改仓库对应的目录

操作步骤:

1:新建新仓库目录

mkdir -p /mnt/application/gitlab/git-data

2:修改配置文件 sudo vi /etc/gitlab/gitlab.rb
搜索:git_data_dir 修改成:git_data_dir "新目录"
如:

git_data_dir "/mnt/application/gitlab/git-data"

保存
3:重新生成gitlab

sudo gitlab-ctl reconfigure

生成不报错,而且在新建仓库目录可以看到从下的目录,即修改成功。

gitlab 邮箱配置

默认情况下,gitlab用qq邮箱注册是发送不出确认邮件的。

下面说说gitlab配置腾讯企业邮箱

# vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "support@ttlsa.com"
gitlab_rails['smtp_password'] = "www.ttlsa.com"
gitlab_rails['smtp_domain'] = "ttlsa.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "support@ttlsa.com"

163邮箱

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.163.com"
 gitlab_rails['smtp_port'] = 25
 gitlab_rails['smtp_user_name'] = "sunxintao@163.com"
 gitlab_rails['smtp_password'] = "4578101"
 gitlab_rails['smtp_domain'] = "163.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = false

重新加载配置

sudo gitlab-ctl reconfigure

发现目前qq邮箱已经不管用了,建议使用163邮箱

http://www.ttlsa.com/linux/howto-gitlab-using-qq-mailserver-send-mail/

修改gitlab的项目部署url地址

<刚在centos7上部署了最新版本的gitlab 8.7.3,发现在创建的git项目地址为http://localhost/username/www.git ,外网无法访问,这时我们只需要修改一个配置文件即可。我安装的时候全部使用的默认配置,路径为 /var/opt/gitlab/gitlab-rails/etc/,配置文件为 gitlab.yml ,文件顶部配置如下:

host: localhost
port: 80
https: false

修改host值为你想使用的外网域名或服务器IP地址即可,保存退出。

gitlab-ctl restart

用ps -ef | grep nginx命令看了下,发现运行的nginx的路径是/opt/gitlab/embedded/sbin/nginx,而配置文件路径是/var/opt/gitlab/nginx,怪不得我打开/etc/nginx/nginx.conf没看到gitlab相关的配置。
试着改了下/var/opt/gitlab/nginx/nginx.conf 和 /var/opt/gitlab/nginx/gitlab-http.conf,重启服务后,页面无法访问了,我先折腾一下。
但配置文件为/etc/gitlab/gitlab.rb来配置

===============

如何修改gitlab监听端口

1.修改gitlab监听端口,默认为使用80端口,有时服务器中已经有nginx/apache占用了这个端口,修改监听端口来避免此问题
修改 /etc/gitlab/gitlab.rb 文件,修改下行

# nginx['listen_port'] = nil

nginx['listen_port'] = 8089

保存,执行重新配置命令

sudo gitlab-ctl reconfigure

通过浏览器 http://ip:8089 即可访问。

2.如何让gitlab只监听本机内网ip

修改

# nginx['listen_addresses'] = ['*']

nginx['listen_addresses']= ['127.0.0.1']

如何备份与恢复gitlab

https://segmentfault.com/a/1190000002439923

 

HomeBrew中国镜像源

Mac 终端跑入即可

cd /usr/local/
git remote set-url origin http://mirrors.ustc.edu.cn/homebrew.git
#或者这个:
git remote set-url origin git://mirrors.tuna.tsinghua.edu.cn/homebrew.git
brew update

如果还是感觉慢,看看这个:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

cd ~/tmp
git clone git://mirrors.tuna.tsinghua.edu.cn/homebrew.git
rm -rf /usr/local/.git
rm -rf /usr/local/Library
cp -R homebrew/.git /usr/local/
cp -R homebrew/Library /usr/local/

然后重试update。

使用homebrew-science或者homebrew-python

cd /usr/local/Library/Taps/homebrew/homebrew-science
git remote set-url origin git://mirrors.tuna.tsinghua.edu.cn/homebrew-science.git

cd /usr/local/Library/Taps/homebrew/homebrew-python
git remote set-url origin git://mirrors.tuna.tsinghua.edu.cn/homebrew-python.git

brew update

也可以使用coding.net提供的镜像

$ cd /usr/local && git remote set-url origin https://git.coding.net/homebrew/homebrew.git

$ brew update