Linux进程间通信的六种主要手段

1.管道(Pipe)及有名管道(named pipe)

管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;

2.信号(Signal)

信号是比较复杂的通信方式,用于通知接受进程有某种事件生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期 信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上, 该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,sigaction函数重新实现了signal函数);

3.报文(Message)队列(消息队列)

消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

阅读全文

用SS5在Linux上搭建Socks5 Proxy代理服务器

SOCKS5 是一个代理协议,通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。

下面我们将用SS5在Linux上搭建一个Socks5 Proxy Server,具体过程如下:

首先,编译安装SS5需要先安装一些依赖组件

接下来,我们从 http://ss5.sourceforge.net/ 下载SS5最新版本的源代码后,开始编译安装:

让SS5随系统一起启动

开启用户名密码验证机制

在ss5.conf中找到auth和permit两行,按照下面的格式进行修改

设置用户名和密码

一行一个账号,用户名和密码之间用空格间隔,例如:

设置端口

在/etc/sysconfig/ss5这个文件中,添加下面这一行命令,-b后面的参数代表监听的ip地址和端口号

启动

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

Linux中编译安装Redis和PHP扩展

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

 

下面,我们以Redis 3.0.2为例,对编译安装方法进行说明:

Redis安装好后,接下来我们来为PHP安装Redis扩展:

上面的操作完成后,会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目录下生成出一个redis.so文件,下面我们需要把这个so文件加到php.ini中

具体设置如下:

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

通过iptables规则让Linux主机屏蔽Ping

我们以CentOS为例,向iptables中添加如下三条规则:

第1、2行定义了允许192.168.0.100这个ip允许向主机发出Ping请求

第3、4行定义禁止其他所有地址向主机发出Ping请求,接收到的数据包会被丢弃(DROP)

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

在Linux中部署FFmpeg开源视频压缩环境过程简单笔记

下面是在Linux中部署FFmpeg和相关类库全过程的简单记录,如下:

编译安装yasm

编译安装x264

编译安装lame

编译安装libogg

编译安装libvorbis

编译安装faac

编译安装ffmpeg

将libx264写进ldconfig

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

Linux下管理Memcached的Service脚本

Memcached 的编译安装过程请参考本站的《Linux下部署Memcached和PHP的Memcache扩展方法

如 Memcached 已在 Linux 中安装完毕,且被部署到 /usr/local/memcached 这个路径下,接下来我们来开始为其安装用于启动和停止的服务管理脚本。

首先,通过 vi 在 /etc/rc.d/init.d 路径下新建一个名为 memcached 的脚本文件,命令如下:

然后,向其中写入 Shell 脚本如下:

保存退出 vi 后,执行下面的命令来安装这个脚本

然后可以通过下面的命令来检查是否安装成功

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

Linux Bash发现重大安全漏洞

北京时间9月25日消息,Linux用户今天又得到了一个“惊喜”!Red Hat安全团队在 Linux 中广泛使用的Bash shell中发现了一个隐晦而危险的安全漏洞。该漏洞被称为“Bash Bug”或“Shellshock”。

当用户正常访问,该漏洞允许攻击者的代码像在Shell中一样执行,这就为各种各样的攻击打开了方便之门。而且,更糟糕的是,该漏洞已经在Linux中存在很长时间了,所以修补某个Linux机器很容易,但是要全部修补,几乎不可能实现。

Red Hat和Fedora已经发布了针对该漏洞的修补程序。该漏洞也会影响OS X,不过苹果公司尚未发布正式的修补程序。

这个Bash漏洞可能比Heartbleed更危险。

— — Robert Graham (@ErrataRob) 2014 年 9 月 24 日

Red Hat的Robert David Graham比较了该漏洞和Heartbleed,发现前者分布更广泛,有可能对系统安全带来长期影响。Graham在一篇博客文章中写道:“有大量的软件以某种方式与Shell交互,我们没有办法列举出受该漏洞影响的所有软件。”据The Verge报道,Berkeley ICSI的研究员Nicholas Weaver也同意这个说法:“它很隐晦、很可怕,并且会伴随我们多年。”

网络安全公司Rapid7工程部经理Tod Beardsley警告称,Bash漏洞的严重级别为“10”,这意味着它对用户电脑的威胁最大。Bash漏洞的利用复杂度级别为“低”,意味着黑客可以相对轻松地利用它发动攻击。

另外,网络安全公司Trail of Bits的CEO Dan Guido表示,“Heartbleed”漏洞能够允许黑客监控用户电脑,但不会取得控制权。而利用Bash漏洞的方法也更简单——只需要剪切和粘贴一行代码即可。

据称,谷歌安全研究员Tavis Ormandy在Twitter上表示,Linux系统提供商推出的补丁似乎“并不完整”,这引发了几位安全专家的担忧。(责编/单明珠)

本文转载自Linux中国,原文出自The Verge,部分内容有删改。

在Linux中用Shell脚本完成SVN版本库的建立

每次建立一个新的SVN版本库总感觉很繁琐,所以写了段脚本来把这个过程自动化,详细代码如下:

阳光部落原创,更多内容请访问http://www.sunbloger.com/

CentOS 7.0正式发布 新特性汇总

7月8日消息,基于Red Hat红帽免费公开的源代码的CentOS 7最新版正式发布,其基于企业级的Linux发行版本,是目前最受欢迎的Linux系统之一。

CentOS 7首个正式版的版本号为7.0.1406,主要更新内容如下:

— 内核更新至 3.10.0
— 支持 Linux 容器
— Open VMware Tools 及 3D 图像能即装即用
— OpenJDK-7作为缺省 JDK
— 原地升级 6.5 至 7.0
— ext4 及 XFS 的 LVM 快照
— 转用 systemd、firewalld 及GRUB2
— XFS 作为缺省文件系统
— 内核空间内的 iSCSI及FCoE
— 支持PTPv2
— 支持40G乙太网络卡

CentOS官方已经放出CentOS7.0.140 64位的版本下载地址,一如每个主要版本的首个发行本,多数组件都已作出改动及更新至较新版本。最重大的改动有包括内核更新至3.10.0、支持Linux 容器、Open VMware Tools 及 3D 图像能即装即用等。
下载地址:www.centos.org。

在Linux中将目录压缩打包为zip文件 并通过ftp上传的Shell脚本

下面的shell脚本是将/opt下yyyymmdd格式的目录压缩打包为bak_yyyymmdd.zip,并通过ftp上传到192.168.0.2上的bak目录下。

阳光部落原创,更多内容请访问http://www.sunbloger.com/