Rootop 服务器运维与web架构

2016-01-27
发表者 Venus
linux下切换svn服务器地址 svn switch –relocate已关闭评论

linux下切换svn服务器地址 svn switch –relocate

linux下,如果项目所属的svn服务器发生ip变更,就需要修改客户端配置,更改为新的仓库地址。windows下为直接右键项目目录 -> TortoiseSVN -> Relocate 。linux就需要用命令去更改。方法如下:

切换到项目路径:
cd /xxx/xxx/xxx

查看原仓库地址信息:

[root@xxx xxx]# svn info
Path: .
URL: svn://1x.1x.1x.1x/repo
<strong>Repository Root: svn://1x.1x.1x.1x/repo  </strong>#svn地址
Repository UUID: dbe02c4e-6fd4-4fae-9ca0-81f6af0cb7ee
Revision: 237
Node Kind: directory
Schedule: normal
Last Changed Author: <strong>rootop  </strong> #svn账户
Last Changed Rev: 237
Last Changed Date: 2016-01-27 16:21:29 +0800 (Wed, 27 Jan 2016)

切换svn服务器地址:

svn switch --relocate 旧地址  新地址
[root@xxx xxx]# svn switch --relocate svn://1x.1x.1x.1x/repo svn://2x.2x.2x.2x/repo

2016-01-07
发表者 Venus
关于memcached缓存的php扩展memcache和memcached的区别已关闭评论

关于memcached缓存的php扩展memcache和memcached的区别

服务端:memcached (内存缓存的服务)

php连接服务端的memcached可以通过 memcachememcached (memcached支持的方法要更多一些)

注意一下,memcache和memcached是两个不同的扩展连接方式。
memcache     是基于pecl库实现php对memcached的连接。
memcached  是基于libmemcached库实现连接。

libmemcached的安装方式:

1、安装libmemcached (官方地址:http://libmemcached.org)
2、安装memcached(这里的memcached是指php扩展,不是指服务端的memcached,名字一样而已)

下载并安装 libmemcached 库,地址 https://launchpad.net/libmemcached/+download
目前最新版本为:libmemcached-1.0.18.tar.gz
解压…略
经典三部曲“`
./configure && make && make install
默认会安装到:/usr/local/lib

下载memcached:
去php官网 http://pecl.php.net/index.php  搜索 memcached


根据搜索结果,点进去,找最新的稳定版本:
http://pecl.php.net/get/memcached-2.2.0.tgz
解压…略

[root@localhost memcached-2.2.0]# phpize
[root@localhost memcached-2.2.0]# ./configure --disable-memcached-sasl
[root@localhost memcached-2.2.0]# make && make install
Installing shared extensions: /usr/lib64/php/modules/

[root@localhost ~]# ll /usr/lib64/php/modules/
total 2552
-rwxr-xr-x 1 root root 66096 Jul 10 01:43 curl.so
-rwxr-xr-x 1 root root 1843120 Jul 10 01:43 fileinfo.so
-rwxr-xr-x 1 root root 36200 Jul 10 01:43 json.so
-rwxr-xr-x 1 root root 314455 Jan 7 17:29 memcached.so
-rwxr-xr-x 1 root root 261392 Jul 10 01:43 phar.so
-rwxr-xr-x 1 root root 83088 Jul 10 01:43 zip.so

编辑php配置文件添加php扩展路径及加载模块:
extension_dir = “/usr/lib64/php/modules/”
extension = memcached.so

重启apache,通过php的phpinfo()函数查看。

2016-01-06
发表者 Venus
mysql使用order by自定义排序已关闭评论

mysql使用order by自定义排序

原表 user:

id name roleId
1 aaa 1
2 bbb 2
3 ccc 3
4 ddd 4
5 eee 5

1、MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、4,如遇到null或者不在列表中的数据则返回0.

例如:select * from user order by field(roleId,2,3,4,1,5);

结果:

id name roleId
2 bbb 2
3 ccc 3
4 ddd 4
1 aaa 1
5 eee 5

2、locate(substr,str)函数返回子串substr在字符串str中第一次出现的位置,可以根据该函数进行排序

例如:select * from user order by locate(id,’2,3,1,5,4′);

结果:

id name roleId
2 bbb 2
3 ccc 3
1 aaa 1
5 eee 5
4 ddd 4

2015-12-14
发表者 Venus
Linux的chattr与lsattr命令详解已关闭评论

Linux的chattr与lsattr命令详解

原文来自:  http://www.ha97.com/5172.html

PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

2015-12-14
发表者 Venus
修复ssh无法连接(ssh输入完密码自动退出)已关闭评论

修复ssh无法连接(ssh输入完密码自动退出)

故障现象,通过telnet连接服务器22端口是通的,通过ssh软件连接,到密码输入完以后自动退出。
机房检查过配置文件,跟配置文件无关(root允许登录的),selinux也是关闭,iptables也是关闭,tcpwraper没限制,fail2ban也关了。
排除了能想到会影响连接的因素。依旧无法解决。
实在不知道怎么回事让机房开启了telnet,通过telnet暂时维护机器。

期间机房技术给重装过ssh服务,也改过配置文件,依然无法解决。开启telnet以后准备自己解决。
通过telnet恢复默认的ssh配置文件,重启服务,可以了。然后过了一段时间又不可以了。
怀疑机器被··· 你懂得。

再次telnet上去维护,准备再卸载ssh服务,重装下,怀疑是 ssh服务被篡改了,linux下有第三方ssh patch,而已修改ssh。

rpm -e openssh-server openssh 删掉所有的openssh包
删除配置文件(/etc/ssh/*)。

安装:
[root@localhost ~]# yum install -y openssh-server
提示错误
Error unpacking rpm package openssh-server-5.3p1-112.el6_7.x86_64
error: unpacking of archive failed on file /usr/sbin/sshd: cpio: rename
应该是先备份这个命令再安装,结果rename不了,就报错。

手动去改名这个文件也无法删除,提示无权限。
[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshdbak
mv: cannot move `/usr/sbin/sshd’ to `/usr/sbin/sshdbak’: Operation not permitted

猜测是linux权限问题,特殊的文件不允许删除,即使有777权限或者root权限。
[root@localhost ~]# lsattr /usr/sbin/sshd
-u–ia——-e- /usr/sbin/sshd

去掉a和i属性:

[root@localhost ~]# chattr -i /usr/sbin/sshd
[root@localhost ~]# chattr -a /usr/sbin/sshd

[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshdbak

再次安装不再报错
[root@localhost ~]# yum install -y openssh openssh-server

观察看看,再出问题就得重装系统了。
现在ssh可以登录了。