IT log

moral & concision is my dream.

Archive for May 5th, 2009

centos setup: miscellaneous tip 2

ip route del 临时清空路由表(除网卡默认网关外的)
双网卡, 当一个静态IP网卡已经手动在文件中设置默认网关的情况下, 另外一个DHCP网卡需要用脚本再添加一个默认网关,否则系统会一直默认从静态网关出去, 就算是静态网卡没连网线而动态连接网线的情况下也不会改变. 当静态网关没有设置到文中时, DHCP会自动添加一个 网关路由的.

ulimit -a 查看用户可以打开的文件数和其他可以使用的资源限制
df -i 查看Inodes数和空余数,一个Inodes数对应一个文件,IFree就代表还能打开的文件数,文件数上限并不针对当前的目录,而是针对整个系统

mail 查看当前未读邮件 /var/spool/mail/root spool是临时目录?
进行后 1 查看第一封,按空格翻页
按 q 退出, 自动保存到/root下的文本文件 mbox  中

/etc/selinux/config 默认是 enforcing 需要修改为disabled 才允许apache访问根目录,需要重启系统./etc/sysconfig/selinux是它的符号链接
或在setup中的防火墙配置中关闭,立即生效

rm   -fr 删除目录并不提示

more /etc/passwd 查看所有用户
root:x:0:0:root:/root:/bin/bash
它表示root帐户的是有密码的(以x表示,没有x的表示没有设置密码),用户ID和组ID号均为“0”(内置帐户的用户ID和组ID均小于 500,而新建的帐户用户ID和组ID均等于或大于500),帐户全名为root,所用的登录shell有为/bin/bash。

more /etc/shadow 查看影子密码文件
root:$1$qnvzih07$LKCr9gldeq1ajos5tuLPH.:13670:0:99999:7:::
在这个文件中,也是每个用户对应一行,并且用冒号分成九个部分(Linux系统中称为“域”)。每一域的格式如下:
用户登录名:root
用户加密后的口令(若为空,表示该用户不需口令即可登录,若为*号,表示该帐号被禁用):$1$qnvzih07$LKCr9gldeq1ajos5tuLPH.
从1970年1月1日至口令最近一次被修改的天数:13670
口令在多少天内不能被用户修改(0为没有限制):0
口令在多少天后必须被修改:99999
口令过期多少天后用户帐号被禁止:7
口令在到期多少天内给用户发出警告:
口令自1970年1月1日被禁止的天数:
保留域:

cp /dev/null filename 或 cat /dev/null > filename 新建一个空文件

一个通过 crontab 定时清空系统日志的的例子:
0 0 * * * cat /dev/null > /path/to/access_log
修改/etc/crontab
0   0   *   *   *   root   /etc/init.d/apachectl   restart
这样在夜里0点就可以自动重启了
0   0   *   *   *中的0   0表示0点0分

Tags: ,
posted by Leon Tsang in Live - Work and Struggle and have No Comments

centos setup: miscellaneous tip 1

tail  -n 10 /var/log/messages |grep ER 查看最后10行错误日志
tail  -n 10 /var/log/messages |grep warning 查看最后10行警告日志
ps: centos已在 /etc/my.cnf 中设置 mysql的错误日志单独导出在 /var/log/mysqld.log;

du /var/log -sh 只查看系统日志文件夹的大小
du /var/log/*.log -h 查看系统日志文件的大小
du /var/log -h 查看系统日志文件夹和其中各个文件的大小

下面的 chkconfig 指令由于没有注明 –level参数, 则会同时对 tty2,tty3,tty4,tty5 进行操作.
chkconfig httpd on           让apache服务随系统启动
chkconfig mysqld  on     让mysql服务随系统启动
chkconfig bluetooth  off          不让蓝牙随系统启动

删除mysql的方法:          yum erase mysql
查找mysql安装路径:
如果是rpm包,用rpm -ql mysql查找
如果是编译的,通常在/usr/local/mysql下面

查看mysql的版本号:  进入 mysql 提示行前会提示当前版本号, 或在进入后使用 select version();
从 /etc/my.cnf 中可以看到数据存储在 /var/lib/mysql;

/usr/bin/php -v 或 php -v 查看php版本, 并确认没有 extension 的加载错误信息
php -i 等于phpinfo()函数
php -i|grep php.ini 得到php配置文件路径
httpd   -v 查看apache服务器的版本
vim 快捷键进阶学习:
:noh 取消语法高亮
? 反向搜索,只能按n下一个
/ 正向搜索,只能按n下一个
:[range]s/pattern/string/[c,e,g,i]
range     指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。
pattern     就是要被替換掉的字串,可以用 regexp 來表示。
string     將 pattern 由 string 所取代。
c     confirm,每次替換前會詢問。
e     不顯示 error。
g     globe,不詢問,整行替換。
i     ignore 不分大小寫。
g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如 cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。
[實例] :%s/Edwin/Edward/g
這樣整篇文章的 Edwin 就會替換成 Edward。

修复/恢复 passwd文件的方法, 也许以后再出现passwd权限被误改时我可以试试:
用光盘Rescue模式启动,把passwd拷过去

/var/log 下的常见文件说明:
1)/var/log/secure:记录登录系统存取数据的文件;
例如pop3,ssh,telnet,ftp等都会记录在此.

2)/ar/log/wtmp:记录登录这的信息记录,被编码过,所以必须以last解析;

3)/var/log/message:jihu所有的开机系统发生的错误都会在此记录;

4)/var/log.boot.log:记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;

5)/var/log/maillog:记录邮件的存取和往来;

6)/var/log/cron:用来记录crontab这个服务的内容;

7)/var/log/httpd,/var/log/mysqld.log等等文件,记录几个不同的网络服务的记录文件;

8)/var/log/acpid ,   ACPI – Advanced Configuration and Power Interface,表示高级配置和电源管理接口。
后面的 d 表示 deamon 。 acpid 也就是 the ACPI event daemon 。 也就是 acpi 的消息进程。用来控制、获取、管理 acpi 的状态的服务程序。

9)/var/run/utmp 记录着现在登录的用户;
10)/var/log/lastlog 记录每个用户最后的登录信息;
11)/var/log/btmp 记录错误的登录尝试;
12)/var/log/dmesg内核日志;
13)/var/log/cpus CPU的处理信息;
14)/var/log/syslog 事件记录监控程序日志;
15)/var/log/auth.log 用户认证日志;
16)/var/log/daemon.log 系统进程日志;
17)/var/log/mail.err 邮件错误信息;
18)/var/log/mail.info 邮件信息;
19)/var/log/mail.warn 邮件警告信息;
20)/var/log/daemon.log 系统监控程序产生的信息;
21)/var/log/kern 内核产生的信息;
22)/var/log/lpr   行打印机假脱机系统产生的信息;

日志的记录是syslog这个daemon来管理控制的

Tags: , , ,
posted by Leon Tsang in Live - Work and Struggle and have No Comments

refer to PHProjekt

PHProjekt 6 的开发预览版之前我再把系统恢复后又重启安装了一遍, 但可惜该bug太多, 只能放弃.

由于重新安装时使用了 yum install php* 命令, 使得 一下子安装了 49个 php extension, 其中出现不兼容的只有三个(memcache, read head, file info).

在进行调试的过程中学到:

1. php的配置文件除了 /etc/php.ini 外还有 /etc/php.d/ 目录中的所有文件, 所以删除 extension 需要同时删除模块和php.d中的ini文件 xcache extension 效果似乎不错, 感觉安装了这么多扩展页面打开速度反而变快了, 也许是它的原因吧 . 而且这么多插件安装后也解决了之前 phprojekt 5.2 的 xss 函数错误和 chat 模块问题及一些其他小毛病, 我觉得它安装之前应该先探测一下或在安装说明中指出需要的扩展插件, 否则也不会使的我之前耽误那么多时间.

2. apahce httpd.conf 的配置中, Options Indexed 表示当在当前目录没有找到默认页时, 会对目录文件进行索引和IIS中的浏览目录功能一样.  Options FollowSymLinks 则表示有权限可以访问根目录下的子目录了.

3. 关于 phprojekt 最大的突破就是, 我终于找到了它的 用户管理功能了, 就是以管理员登录后选中左边的 Admin, 在 Choose group:下拉框选一个组就会属性出带有  User management  功能的子框架了.

4. 当发现网站没有能成功分页保存日志时, 才发现加 rotatelogs 指令和不加的区别了.  当没有 rotatelogs 时 logs/access_log 是针对的当前目录 /etc/httpd , 而使用后则变成了 rotatelogs 所在的目录 /usr/sbin 了, 所以命令要改写为 “|rotatelogs /etc/var/log/httpd  的绝对地址形式. 其中 /etc/httpd/logs 是 /var/log/httpd 的符号链接.

5.  webalizer.conf  中的allow from ::1 和 allow from 127.0.0.1 是同样的意思,前者针对的是 ipv6 ,后者是 ipv4 . 可用类似命令来对日志文件进行分析:
webalizer -F clf -p -n ” ” -t “My sites log”  -o /var/www/html/log /var/log/httpd/access_log
发现必须要 755权限来浏览 webalizer生成的分析文件. 如果修改允许地址为
Allow from 127.0.0.1 192.168.0.0/16 , 则全局域网内都能查看, 之前只能本机查看.
::1是ipv6压缩形式的回环地址,正常为 0:0:0:0:0:0:0:1
用ifconfig 可以看到 lo 的ipv6地址为 ::1/128 , 这里之所以不是 ::1/112 是因为包括了链路地址前缀, 不过通常使用时只适用不含链路前缀的用冒号分隔的每部分为4为长度的8段16进制数值.

还能看到以 fe80::为前缀的 ipv6地址, 这表示为 单播链路地址.

单播地址参看知识:

用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值 FF。此八位字节的任何其他值都标识单播地址。
以下是不同类型的单播地址:
链路-本地地址。这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路-本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路-本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。
站点-本地地址。这些地址用于单个站点并具有以下格式:FEC0::SubnetID:InterfaceID。站点-本地地址用于不需要全局前缀的站点内的寻址。
全局 IPv6 单播地址。这些地址可用在 Internet 上并具有以下格式:010(FP,3 位)TLA ID(13 位)Reserved(8 位)NLA ID(24 位)SLA ID(16 位)InterfaceID(64 位)。

posted by Leon Tsang in Live - Work and Struggle and have Comment (1)