A-A+

Linux 服务器维护相关常用命令集合

2013年04月17日 学习小计 暂无评论 阅读 1 次

查看服务器每IP的连接数,用于检测DDOS

netstat -ntu | awk'{print $5}' | cut-d: -f1 | sort| uniq -c | sort -n

2 199.87.229.20
3 120.43.25.94
3 218.30.103.142
3 61.135.169.47
4 110.81.18.140
8 59.58.136.94
20 192.151.148.226
47 219.157.16.254

T人,把其他人从服务器中踢出去

1
2
3
4
5
w #查看谁在线
 15:44:27 up 22 days,  7:16,  1 user,  load average: 0.02, 0.09, 0.10
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.161.177.103  15:40    0.00s  0.03s  0.00s w
pkill -KILL -t pts/0 #踢了这个终端(现在是T自己,^_^)

修改文件的时间戳

1
2
touch -c -t 0801010800 filename.c
#将文件的时间戳设定为2008-01-01 8:00,格式为(YYMMDDhhmm)。

批量将 .conf 文件重命名为 .conf.bak

1
2
3
cd /etc/httpd/webSite/
for i in $(ls *.conf);do mv $i ${i/.conf/.conf.bak};done
# 因使用了ls命令,注意当前目录问题

一键安装Apache+PHP+MySQL

1
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql

添加用户并设置密码

1
2
3
useradd -s /bin/nologin -m -d /var/www/website/new_user_name -g newUserGroupName newUserName
echo `pwdBuilder newUserName`| passwd newUserName --stdin
# 添加一个网站的用户,禁止登录,家目录为网站根目录,根据pwdBuilder计算密码

查看当前目录下的一级目录个数

1
ls -l |grep "^d"|wc -l

vi 删除空行

1
:g/^s*$/d

查找目录中的文件中所含有指定字符串的文件

1
2
3
4
5
6
find ./ -name '*.conf' | xargs grep -in "baidu.com.demo.upall.cn"
# 注:“baidu.com.demo.upall.cn” 是要查找的字符串
# 这个命令用于在大批的配置文件中快速定位到某域名的配置文件名称,因为:
# 因特殊原因导致该用户的配置文件名不符合规则或一个配置文件中有多个不相似的域名
#   i:不区分大小写
#   n:显示所在行号

查看单个文件(或文件夹)大小

1
du -sh /var/log/

查看文件夹中各文件夹、文件的大小(区分哪个文件夹最大)

1
du -h --max-depth=1 /var/log/

删除源码中的^M

1
:%s/^M$//g #注意:^M的输入方式,Ctrl+V+M

批量去除include及其下文件的写权限

1
2
find /var/www -type d -name "include" -print0 | xargs -0 chmod ugo-w -R
# 去除执行权限可以看这篇文章:/?p=697

查找当前文件夹中包含字符串“fsockopen”的所有文件

其实查找“udp://$”的话会精准一些,当然也要看实际情况,^_^。

1
2
3
4
5
find ./ -type f | xargs grep -sni "fsockopen"
# 或者(下边这行帮助理解“-sni”参数)
find ./ -type f | xargs grep --silent --line-number --ignore-case "fsockopen"
# 如果找出的文件全部可以删除的话,可以用下边这条命令来删除:
find ./ -type f | xargs grep -lsi "fsockopen" | xargs rm

查看域名的MX记录是否生效

1
2
[upall@linux ~]$ host -t mx upall.cn
upall.cn mail is handled by 10 mx.upall.cn.

列出所有网站文件夹中 zip 的文件,并显示其大小

经常会在服务器上下载一些源码包或者打包一些备份文件之后忘记删除,这个命令可以找出它们。

1
find /www/ -type f -name "*.zip" -print0 | xargs -0 du -h

删除用户及其文件(删除用户登入目录以及目录中所有文件)

1
userdel -r upall

查看指定端口运行的程序

1
2
3
4
# 查看3428端口运行的程序:
lsof -i :3428
# 关闭进程可以(9是终止信号等级):
killall -9 firefox

修改 /etc/aliases 后更新 /etc/aliases.db 数据库

1
newaliases

禁用停用锁定用户、恢复启用用户

1
2
passwd -l upall #禁用用户upall
passwd -u upall #启用用户upall

清除UTF-8中的BOM头

1
2
grep -r $'xEFxBBxBF' * |grep .php
#或者直接配置vim:set nobomb

CentOS yum安装Apache + PHP + MySQL + Tomcat

1
#yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql

替换MySQL字段中的字符串

1
2
3
4
5
6
7
UPDATE `tableName`
SET `fieldName` = replace (`fieldName`,'fromString','toString')
WHERE `fieldName` LIKE '%fromString%';
- tableName 表的名字
- fieldName 字段名
- fromString 需要替换的字符串
- toString 替换成的字符串

将文件复制到符合规则的目录中(一个文件到多个目录)

1
2
3
4
5
6
# 复制文件到路径中包含“base/images”的目录中:
find . -type d -print | grep "/base/images" | awk '{print $1}' | xargs -I % cp ./logo.gif %
# 复制文件到所有目录中:
find . -type d -exec cp ./logo.gif {} ;
# 复制文件到路径中包含“images”的目录中(name参数值不能有“/”,若有则需要“grep来配合”):
find . -type d -name "images" -exec cp ./logo.gif {} ;

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录