ldconfig命令作用

ldconfig是一个动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令–ldconfig
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
ldconfig命令行用法如下: 
ldconfig [-v|–verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|–print-cache] [-c FORMAT] [–format=FORMAT] [-V] [- |–help|–usage] path…

ldconfig可用的选项说明如下: 
(1) -v或–verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.
(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接. Continue reading

iostat命令

Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

1.命令格式:

iostat[参数][时间][次数]

2.命令功能:

通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。

3.命令参数:

-c 显示CPU使用情况

-d 显示磁盘使用情况

-k 以 KB 为单位显示 Continue reading

分布式TCP压力测试工具 tcpcopy

tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,我们曾经应用于网易的广告投放系统,urs系统,nginx hmux协议开发等系统,避免了上线带来的很多问题。

总体说来,tcpcopy主要有如下功能:

1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug
2)对于后端的短连接,请求丢失率非常低(1/10万),可以应用于热备份
3)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
4)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
5)利用多种手段,构造无限在线压力,满足中小网站压力测试要求
6)实战演习(架构师必备) Continue reading

git config –global push.default

参考教程http://blog.haohtml.com/archives/10093刚安装的git最新版本,发现有些命令发生了一些变化.

[web@bogon www]$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from ‘matching’ to ‘simple’. To squelch this message
and maintain the current behavior after the default changes, use:

git config –global push.default matching

To squelch this message and adopt the new behavior now, use:

git config –global push.default simple

See ‘git help config’ and search for ‘push.default’ for further information.
(the ‘simple’ mode was introduced in Git 1.7.11. Use the similar mode
‘current’ instead of ‘simple’ if you sometimes use older versions of Git)

Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 263 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)

再次执行上面的命令的时候,可能会提示以下信息:

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push –set-upstream origin master

这个时候只需要执行一下命令

git push –set-upstream origin master

即可

git remote用法总结

git remote

git remote显示所有的remote(加-v显示详细信息)。
git remote add [shortname] [url]用来添加remote。
git fetch [remote-name]只会pull下来全部的更动,但不会自动merge,但是git pull会自动merge。
git remote show [remote-name]可以看到一个remote的详细信息。
git remote rename old new 用来改变一个remote的名字。
git remote rm [remote-name]删除一个remote。
git remote 不带参数,列出已经存在的远程分支,例如:
#git remote
origin_apps

git remote -v | –verbose 列出详细信息,在每一个名字后面列出其远程url,例如:
#git remote -v
origin_apps     gitolite@scm:apps/Welcome.git (fetch)
origin_apps     gitolite@scm:apps/Welcome.git (push)
需要注意的是,如果有子命令,-v | –verbose需要放在git remote与子命令中间。

git remote add name url 在url创建名字为name的仓库(Adds a remote named <name> for the repository at <url>)
name为远程仓库的名字

git remote show name 必须要带name,否则git remote show的作用就是git remote,给出remote name的信息。

 

如何查看crontab的日志记录

昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。

1.  linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
2.  unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

运行cacti的问题Cannot connect to MySQL server on ‘localhost’.Please make sure you have specified a valid MySQL database name in ‘include/config.php’

参考以次的教程http://blog.haohtml.com/archives/9428,在centos安装cacti监控工具,发现在命令行下运行

php /var/www/html/cacti/poller.php

的时候,提示以下错误

FATAL: Cannot connect to MySQL server on ‘localhost’. Please make sure you have specified a valid MySQL database name in ‘include/config.php’

而这此配置文件是没有任何问题的,cacti后台访问一切正常的。poller.php是使用/var/lib/mysql/mysql.sock的,

当我在my.cnf里把mysql.sock定义到/var/lib/mysql/mysql.sock时,poller.php可以连接,
但执行mysql就提示错误了,我把mysql.sock的位置改为/tmp/mysql.sock,使用网上提供解决办法:

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

问题解决了。

查看Linux系统 重启日志,登录日志和输入命令的日志

查看 重启情况

# last reboot

——————————————————————————————————————————————–

reboot   system boot  2.6.18-92.el5    Mon Dec  6 12:50          (05:11)
reboot   system boot  2.6.18-92.el5    Mon Dec  6 10:49          (07:12)
reboot   system boot  2.6.18-92.el5    Sun Dec  5 18:56          (23:05)
reboot   system boot  2.6.18-92.el5    Mon Nov 29 09:55         (7+08:06)
reboot   system boot  2.6.18-92.el5    Sun Nov 28 13:47         (8+04:14)
reboot   system boot  2.6.18-92.el5    Thu Nov 25 11:59         (11+06:02)
reboot   system boot  2.6.18-92.el5    Wed Nov 24 10:51         (12+07:10)
reboot   system boot  2.6.18-92.el5    Fri Nov 19 13:37         (17+04:24)
reboot   system boot  2.6.18-92.el5    Fri Nov 19 13:28          (00:00)
reboot   system boot  2.6.18-92.el5    Wed Nov 10 09:22         (9+03:51)
reboot   system boot  2.6.18-92.el5    Mon Nov  8 09:14         (11+03:59)
reboot   system boot  2.6.18-92.el5    Sat Sep 25 20:57         (54+16:16)
reboot   system boot  2.6.18-92.el5    Wed Jul 28 15:13         (113+22:00)
reboot   system boot  2.6.18-92.el5    Wed Jun 30 04:17         (28+10:49)
reboot   system boot  2.6.18-92.el5    Wed Jun 30 01:39          (02:31)
———————————————————————————————-  Continue reading

nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法

NGINX启动时提示错误:

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

ldd $(which /usr/local/nginx/sbin/nginx)

linux-vdso.so.1 => (0x00007fff48ff0000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003065800000)
libpcre.so.1 => not found
libssl.so.6 => /lib64/libssl.so.6 (0x0000003067000000)
libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003066400000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003063000000)
libz.so.1 => /lib64/libz.so.1 (0x0000003063c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003062c00000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000003066c00000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003069c00000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003068800000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003069000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003062800000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x000000306a800000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003067c00000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003068400000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003064400000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003064000000)

解决方法:

ln -s /usr/local/lib/libpcre.so.1 /lib64

32位系统则:

ln -s /usr/local/lib/libpcre.so.1 /lib

注:
/usr/local/lib/libpcre.so.1 为prce安装后的文件地址
低版本prce对应的libpcre.so.1 为libpcre.so.0