浏览分类:Linux

SaltStack设置PATH环境变量遇到的坑

あぁ、絶望の目つき

今天用Salt更改minion的PATH环境变量发现了一个坑,首先,salt命令行获取minion的PATH,如下图

随后,ssh去到其中一台minion查看PATH,如下图

嗯,这很不对。根据上篇提到的distccd启动问题,立马去看了下salt-minion启动脚本,估计是里面定义了额外的PATH。

果然,如下图 阅读全文

distcc+ccache+dmucs构建分布式编译环境

PS: distcc3.1+之后的pump模式足可以取代dmucs,因此,此文几乎没有什么作用,看看就好 ^_^(20170322)

因公司内部服务器环境发生变化,需进行迁移工作,重新配置开发编译环境。发觉了distcc+ccache这个分布式编译的东东,研究了一阵子,并参考网上资料,加入了dmucs,使得整体编译效率会有所提高,以下为例子演示:
参考链接:

 

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文件系统数据备份与恢复

很不幸,公司内网的一台机器硬盘发生故障,报错如下,最后决定进行更换硬盘。由于系统是CentOS 7,所以,在文件系统是xfs的先天优势下,这个备份与恢复过程就相当简单和快捷了!

处理过程:

1,准备好新硬盘,关服务器,插进新硬盘

2,开机把新硬盘分区格式,必须是xfs文件系统格式

3,把新硬盘挂载到/mnt目录

4,备份与恢复,大概25G左右的数据,不用5分钟就完成备份到恢复,之后的收尾工作就不叙述了,指令如下

阅读全文

在Screen/Tmux中运行脚本

在工作中,经常要在screen里面跑环境,所有在这里就介绍下怎样在screen里面运行脚本,思路:创建一个挂起的screen----->往挂起的screen里面发送指令,命令如下:

那么问题来了,能否在tmux中实现相同的功能?答案是可以的,按照同样的思路即可完成 阅读全文

Screen用法

以往,我们可能有过这样的经历,ssh到一台服务器上面,经常要打开多个终端窗口来完成不同的事情。例如,编译nginx的时候,窗口就会被占据,只能重新打开一个窗口干别的事。更重要的是当ssh突然断线了,窗口中运行的进程就会中断掉,这是很杯具的事情。那么,我们可以用Screen解决这种问题。
简单的说下,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,我们可以开启一个会话,可以在会话中创建多个窗口,在不同的窗口中完成不同的操作,每个窗口互不影响。更重要的是,会话可以挂起,挂起,挂起!就是说,即使我们的ssh断线了,会话中的进程依旧会正常运行。
Screen的用法就不一一介绍了,自行度娘或者man screen,这里简单只说下基本用法。

安装:
自行百度。。。
个人推荐下最新的源码编译安装,太旧的版本是不支持分割窗口的,下载链接:http://ftp.gnu.org/gnu/screen/
下载后解压------->./configure--------->make && make install----即可
阅读全文