Skip to content

Commit c98252c

Browse files
committed
2017-03-15补充了Tmux/Daemontools,完善了其他
1 parent 8dc12a5 commit c98252c

File tree

4 files changed

+263
-1
lines changed

4 files changed

+263
-1
lines changed

Bash.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@
119119
- `hostname`,查看当前登陆用户全名
120120
- `cat /etc/group`,查看所有组
121121
- `cat /etc/passwd`,查看所有用户
122-
- `useradd youmeek -p 123456`,添加一个名为 youmeek 的用户,还有一个同名的组
122+
- `groups youmeek`,查看 youmeek 用户属于哪个组
123+
- `useradd youmeek -g judasn`,添加用户并绑定到 judasn 组下
123124
- `userdel -r youmeek`,删除名字为 youmeek 的用户
124125
- 参数:`-r`,表示删除用户的时候连同用户的家目录一起删除
125126
- 修改普通用户 youmeek 的权限跟 root 权限一样:
@@ -137,6 +138,7 @@
137138
- 通过这两行对比,我们可以直接修改 youmeek 所在行的 UserId 值 和 GroupId 值,都改为 0。
138139
- `groupadd judasn`,添加一个名为 judasn 的用户组
139140
- `groupdel judasn`,删除一个名为 judasn 的用户组(前提:先删除组下面的所有用户)
141+
- `usermod 用户名 -g 组名`,把用户修改到其他组下
140142
- `passwd youmeek`,修改 youmeek 用户的密码(前提:只有 root 用户才有修改其他用户的权限,其他用户只能修改自己的)
141143
- `chmod 777 文件名/目录`,给指定文件增加最高权限,系统中的所有人都可以进行读写。
142144
- linux 的权限分为 rwx。r 代表:可读,w 代表:可写,x 代表:可执行

Daemontools.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# daemontools 工具
2+
3+
## supervisord
4+
5+
- 注意:Supervisor 能管理非 daemon 的进程,也就是说 Supervisor 不能管理守护进程。否则提示 Exited too quickly (process log may have details) 异常。
6+
- 官网:<http://supervisord.org/installing.html>
7+
- 安装过程:
8+
- 解释:easy_install 是 setuptools 包里带的一个命令,使用 easy_install 实际上是在调用 setuptools 来完成安装模块的工作,所以安装 setuptools 即可。
9+
- 安装:
10+
- `yum -y install python-setuptools`
11+
- `easy_install supervisor`
12+
- 生成配置文件:
13+
- `echo_supervisord_conf > /etc/supervisord.conf`
14+
- 创建专门的程序配置文件目录、日志目录:
15+
- `mkdir -p /var/log/supervisor`
16+
- `mkdir -p /etc/supervisor/conf.d/`
17+
- `echo -e "[include]\nfiles = /etc/supervisor/conf.d/*.conf">>/etc/supervisord.conf`
18+
- 安装完成的内容介绍:supervisor 安装完成后会生成三个执行程序:
19+
- supervisortd:supervisor 的守护进程服务(用于接收进程管理命令)
20+
- supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)
21+
- echo_supervisord_conf:生成初始配置文件程序。
22+
- 程序位置:`/usr/bin/supervisord`
23+
- 配置文件位置:`/etc/supervisord.conf`
24+
25+
### Logstash 进程进行守护
26+
27+
- 默认安装完 Supervisor 是已经启动的,所以在加入新配置之前,需要先停止程序:`ps -ef | grep supervisord`,kill 对应的 pid
28+
- 创建配置文件:`vim /etc/supervisor/conf.d/logstash.conf`
29+
30+
``` nginx
31+
[program:gitnavi-logstash]
32+
command=/usr/program/elk/logstash-2.4.1/bin/logstash -f /usr/program/elk/logstash-2.4.1/config/logstash.conf
33+
stdout_logfile=/var/log/supervisor/supervisord-logstash.log
34+
stderr_logfile=/var/log/supervisor/supervisord-logstash-err.log
35+
user=root
36+
autostart=true
37+
autorestart=true
38+
startsecs=5
39+
priority=1
40+
stopasgroup=true
41+
killasgroup=true
42+
```
43+
44+
- 启动程序(默认会启动所有子任务):`/usr/bin/supervisord -c /etc/supervisord.conf`
45+
- 管理子任务的命令:
46+
- 启动所有子任务:`/usr/bin/supervisorctl start all`
47+
- 结束所有子任务:`/usr/bin/supervisorctl stop all`
48+
- 只载入最新的配置文件, 并不重启任何进程:`/usr/bin/supervisorctl reread`
49+
- 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程:`/usr/bin/supervisorctl reload`
50+
- 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启:`/usr/bin/supervisorctl update`
51+
- 查看所有子任务状态,如果没有运行的子任务则是没有任何反馈信息:`/usr/bin/supervisorctl status`
52+
- 管理所有子任务也可以用交互方式,输入命令:`supervisorctl`,会进入 supervisord 的交互模式下,如果当前有启动的任务,还可以看到对应的任务情况。
53+
- 在该交互下可以停止指定名称的子任务,比如 logstash 任务:`stop gitnavi-logstash`
54+
- 也可以停止所有子任务:`stop all`
55+
- 也可以启动所有子任务:`start all`
56+
- 更多命令可以输入:`help`
57+
58+
### 设置 supervisord 开启自启动
59+
60+
#### CentOS 6
61+
62+
- 创建文件:`vim /etc/init.d/supervisord`
63+
64+
``` nginx
65+
#!/bin/sh
66+
#
67+
# Supervisor is a client/server system that
68+
# allows its users to monitor and control a
69+
# number of processes on UNIX-like operating
70+
# systems.
71+
#
72+
# chkconfig: - 64 36
73+
# description: Supervisor Server
74+
# processname: supervisord
75+
# Source init functions
76+
. /etc/init.d/functions
77+
RETVAL=0
78+
prog="supervisord"
79+
pidfile="/tmp/supervisord.pid"
80+
lockfile="/var/lock/subsys/supervisord"
81+
start()
82+
{
83+
echo -n $"Starting $prog: "
84+
daemon --pidfile $pidfile supervisord -c /etc/supervisord.conf
85+
RETVAL=$?
86+
echo
87+
[ $RETVAL -eq 0 ] && touch ${lockfile}
88+
}
89+
stop()
90+
{
91+
echo -n $"Shutting down $prog: "
92+
killproc -p ${pidfile} /usr/bin/supervisord
93+
RETVAL=$?
94+
echo
95+
if [ $RETVAL -eq 0 ] ; then
96+
rm -f ${lockfile} ${pidfile}
97+
fi
98+
}
99+
case "$1" in
100+
start)
101+
start ;;
102+
stop) stop ;;
103+
status)
104+
status $prog ;;
105+
restart)
106+
stop
107+
start ;;
108+
*)
109+
echo "Usage: $0 {start|stop|restart|status}" ;;
110+
esac
111+
```
112+
113+
114+
- `chmod 755 /etc/init.d/supervisord`
115+
- `chkconfig supervisord on`
116+
- 以后启动可以用:`service supervisord start`
117+
- 以后停止可以用:`service supervisord stop`
118+
119+
120+
#### CentOS 7
121+
122+
- 创建文件:`vim /lib/systemd/system/supervisor.service`
123+
124+
``` ini
125+
[Unit]
126+
Description=supervisor
127+
After=network.target
128+
129+
[Service]
130+
Type=forking
131+
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
132+
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
133+
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
134+
KillMode=process
135+
Restart=on-failure
136+
RestartSec=42s
137+
138+
[Install]
139+
WantedBy=multi-user.target
140+
```
141+
142+
- `chmod 766 /lib/systemd/system/supervisor.service`
143+
- `systemctl enable supervisor.service`
144+
- `systemctl daemon-reload`
145+
146+
## 资料
147+
148+
- <http://blog.csdn.net/xyang81/article/details/51555473>
149+
- <https://www.fangc.xyz/detail/centos6pei-zhi-supervisorkai-j/>
150+
- <http://cpper.info/2016/04/14/supervisor-usage.html>
151+
- <https://luckymrwang.github.io/2016/12/23/Supervisor%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/>
152+
- <http://www.aichengxu.com/linux/24569479.htm>
153+
- <http://www.tianfeiyu.com/?p=2450>

JDK-Install.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
- `sudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64`
3131
- `sudo rpm -e --nodeps tzdata-java-2015g-2.el6.noarch`
3232
- 也可以一起卸载:`sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64 java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64 tzdata-java-2015g-2.el6.noarch`
33+
- 如果是 CentOS 7 的话:`sudo rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64 java-1.7.0-openjdk-headless-1.7.0.131-2.6.9.0.el7_3.x86_64 python-javapackages-3.4.1-11.el7.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el7_3.x86_64 java-1.8.0-openjdk-headless-1.8.0.121-0.b13.el7_3.x86_64 tzdata-java-2017a-1.el7.noarch`
3334
3435
- JDK 1.8 安装
3536
- 我们以安装 `jdk-8u72-linux-x64.tar.gz` 为例

Tmux-Install-And-Settings.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Tmux 安装和配置
2+
3+
## 介绍
4+
5+
- 说明:`tmux is a "terminal multiplexer", it enables a number of terminals (or windows) to be accessed and controlled from a single terminal. tmux is intended to be a simple, modern, BSD-licensed alternative to programs such as GNU screen.`
6+
- 大家的主要用途:`提供了一个窗体组随时存储和恢复的功能`,本质有点类似守护进程感。
7+
- 官网:<https://tmux.github.io/>
8+
- 官网 Github:<https://github.com/tmux>
9+
- 当前(201703)最新版本:**2.3**
10+
11+
## 安装
12+
13+
- CentOS:`yum install -y tmux`
14+
- Ubuntu:`apt-get install -y tmux`
15+
- Mac:`brew install tmux`
16+
- 也可以看官网 GitHub 进行编译安装。
17+
18+
## 基本概念
19+
20+
- session:一个服务器可以包含多个会话,可以理解成是一个特定的终端组合,通常将同一任务下的工作放到一个会话中。
21+
- window:一个会话可以包含多个窗口,一个窗口就相当于普通终端的一个标签,通常在不同的窗口中完成不同的工作。
22+
- pane:一个窗口可以被分割成多个小的窗格。
23+
24+
## 基础用法
25+
26+
- 启动:`tmux`
27+
- 信息查询:
28+
- `tmux list-keys` 列出所有可以的快捷键和其运行的 tmux 命令
29+
- `tmux list-commands` 列出所有的 tmux 命令及其参数
30+
- `tmux info` 流出所有的 session, window, pane, 运行的进程号,等。
31+
- 窗口的控制:
32+
- session 会话:session是一个特定的终端组合。输入tmux就可以打开一个新的session
33+
- `tmux new -s session_name` 创建一个叫做 session_name 的 tmux session
34+
- `tmux attach -t session_name` 重新开启叫做 session_name 的 tmux session
35+
- `tmux switch -t session_name` 转换到叫做 session_name 的 tmux session
36+
- `tmux list-sessions` / tmux ls 列出现有的所有 session
37+
- `tmux detach` 离开当前开启的 session
38+
- `tmux kill-server` 关闭所有 session
39+
- window 窗口:session 中可以有不同的 window(但是同时只能看到一个 window)
40+
- `tmux new-window` 创建一个新的 window
41+
- `tmux list-windows`
42+
- `tmux select-window -t :0-9` 根据索引转到该 window
43+
- `tmux rename-window` 重命名当前 window
44+
- pane 面板:window 中可以有不同的 pane(可以把 window 分成不同的部分)
45+
- `tmux split-window` 将 window 垂直划分为两个 pane
46+
- `tmux split-window -h` 将 window 水平划分为两个 pane
47+
- `tmux swap-pane -U` 在指定的方向(方向有:U、D、L、R 四种)交换 pane
48+
- `tmux select-pane -U` 在指定的方向(方向有:U、D、L、R 四种)选择下一个 pane
49+
50+
## 高级用法
51+
52+
- **注意:** 有一个前缀快捷键的概念,也称作:`<prefix>`,默认快捷键:`Ctrl + B`,下面的这些操作都是必须先按这个快捷键后再输入对应的命令:
53+
- 基本操作
54+
- `?` 列出所有快捷键;按q返回
55+
- `d` 脱离当前会话,可暂时返回Shell界面
56+
- `s` 选择并切换会话;在同时开启了多个会话时使用
57+
- `D` 选择要脱离的会话;在同时开启了多个会话时使用
58+
- `:` 进入命令行模式;此时可输入支持的命令,例如 kill-server 关闭所有tmux会话
59+
- `[` 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,q/Esc退出
60+
- `]` 进入粘贴模式,粘贴之前复制的内容,按q/Esc退出
61+
- `~` 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
62+
- `t` 显示当前的时间
63+
- `ctrl + z` 挂起当前会话
64+
- 窗口操作
65+
- `c` 创建新窗口
66+
- `&` 关闭当前窗口
67+
- `[0-9]` 数字键切换到指定窗口
68+
- `p` 切换至上一窗口
69+
- `n` 切换至下一窗口
70+
- `l` 前后窗口间互相切换
71+
- `w` 通过窗口列表切换窗口
72+
- `,` 重命名当前窗口,便于识别
73+
- `.` 修改当前窗口编号,相当于重新排序
74+
- `f` 在所有窗口中查找关键词,便于窗口多了切换
75+
- 面板操作
76+
- `"` 将当前面板上下分屏(我自己改成了 |)
77+
- `%` 将当前面板左右分屏(我自己改成了 -)
78+
- `x` 关闭当前分屏
79+
- `!` 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
80+
- `Ctrl + 方向键` 以1个单元格为单位移动边缘以调整当前面板大小
81+
- `Alt + 方向键` 以5个单元格为单位移动边缘以调整当前面板大小
82+
- `q` 显示面板编号
83+
- `o` 选择当前窗口中下一个面板
84+
- `方向键` 移动光标选择对应面板
85+
- `{` 向前置换当前面板
86+
- `}` 向后置换当前面板
87+
- `Alt+o` 逆时针旋转当前窗口的面板
88+
- `Ctrl+o` 顺时针旋转当前窗口的面板
89+
- `z` 最大化当前所在面板
90+
- `page up` 向上滚动屏幕,q 退出
91+
- `page down` 向下滚动屏幕,q 退出
92+
93+
94+
95+
96+
## 资料
97+
98+
- <http://kuanghy.github.io/2016/09/29/tmux>
99+
- <http://harttle.com/2015/11/06/tmux-startup.html>
100+
- <http://cenalulu.github.io/linux/tmux/>
101+
- <http://wdxtub.com/2016/03/30/tmux-guide/>
102+
- <https://gist.github.com/ryerh/14b7c24dfd623ef8edc7>
103+
- <http://cenalulu.github.io/linux/tmux/>
104+
- <http://fishcried.com/2014-09-15/tmux/>
105+
- <>
106+
- <>

0 commit comments

Comments
 (0)