SaltStack设置PATH环境变量遇到的坑
あぁ、絶望の目つき
今天用Salt更改minion的PATH环境变量发现了一个坑,首先,salt命令行获取minion的PATH,如下图
随后,ssh去到其中一台minion查看PATH,如下图
嗯,这很不对。根据上篇提到的distccd启动问题,立马去看了下salt-minion启动脚本,估计是里面定义了额外的PATH。
果然,如下图 阅读全文
あぁ、絶望の目つき
今天用Salt更改minion的PATH环境变量发现了一个坑,首先,salt命令行获取minion的PATH,如下图
随后,ssh去到其中一台minion查看PATH,如下图
嗯,这很不对。根据上篇提到的distccd启动问题,立马去看了下salt-minion启动脚本,估计是里面定义了额外的PATH。
果然,如下图 阅读全文
PS: distcc3.1+之后的pump模式足可以取代dmucs,因此,此文几乎没有什么作用,看看就好 ^_^(20170322)
因公司内部服务器环境发生变化,需进行迁移工作,重新配置开发编译环境。发觉了distcc+ccache这个分布式编译的东东,研究了一阵子,并参考网上资料,加入了dmucs,使得整体编译效率会有所提高,以下为例子演示:
参考链接:
1 2 3 4 5 6 |
http://www.ibm.com/developerworks/cn/linux/l-ccache.html http://manpages.ubuntu.com/manpages/xenial/man1/distcc.1.html https://code.google.com/archive/p/distcc/ http://blog.csdn.net/douhuasinandu/article/details/8640176 http://www.yebangyu.org/blog/2015/11/30/build-distributed-compilation-env/ http://dmucs.sourceforge.net/ |
Distcc的工作原理为:
GCC 编译C/C++构建一个execualble分为四个阶段:
1,cpp(C预处理器):.c 到.i, 由cc完成汇编
2,ccl(C编译器):.i到.s ,由cc完成 由cc完成编译
3,as(汇编器):.s到.o,由as完成
4,链接:.o 到可执行文件,由collect2完成
其中第三阶段是效率瓶颈
因此,distcc此时作为编译器驱动器,负责把gcc -c预处理输出分布到指定的服务器进行处理,
对应的服务器的distccd进程接收到任务,交给本地的distcc进而编译,最终把.o文件返回给客户端
客户端再链接成可执行文件,完成编译过程
阅读全文
很不幸,公司内网的一台机器硬盘发生故障,报错如下,最后决定进行更换硬盘。由于系统是CentOS 7,所以,在文件系统是xfs的先天优势下,这个备份与恢复过程就相当简单和快捷了!
1 |
[ 496.795667] blk_update_request: critical medium error, dev sda, sector 397096120 |
处理过程:
1,准备好新硬盘,关服务器,插进新硬盘
2,开机把新硬盘分区格式,必须是xfs文件系统格式
3,把新硬盘挂载到/mnt目录
4,备份与恢复,大概25G左右的数据,不用5分钟就完成备份到恢复,之后的收尾工作就不叙述了,指令如下
1 |
xfsdump -l 0 - /data | xfsrestore - /mnt |
在工作中,经常要在screen里面跑环境,所有在这里就介绍下怎样在screen里面运行脚本,思路:创建一个挂起的screen----->往挂起的screen里面发送指令,命令如下:
1 2 |
screen -L -md test1 screen -S test1 -p0 -X stuff "$(printf '%b' 'date\015')" ---------------\015在screen是Enter的意思,具体参数解释可man screen |
那么问题来了,能否在tmux中实现相同的功能?答案是可以的,按照同样的思路即可完成 阅读全文
以往,我们可能有过这样的经历,ssh到一台服务器上面,经常要打开多个终端窗口来完成不同的事情。例如,编译nginx的时候,窗口就会被占据,只能重新打开一个窗口干别的事。更重要的是当ssh突然断线了,窗口中运行的进程就会中断掉,这是很杯具的事情。那么,我们可以用Screen解决这种问题。
简单的说下,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,我们可以开启一个会话,可以在会话中创建多个窗口,在不同的窗口中完成不同的操作,每个窗口互不影响。更重要的是,会话可以挂起,挂起,挂起!就是说,即使我们的ssh断线了,会话中的进程依旧会正常运行。
Screen的用法就不一一介绍了,自行度娘或者man screen,这里简单只说下基本用法。
安装:
自行百度。。。
个人推荐下最新的源码编译安装,太旧的版本是不支持分割窗口的,下载链接:http://ftp.gnu.org/gnu/screen/
下载后解压------->./configure--------->make && make install----即可
阅读全文