<?php 2015-6-30 by wxj
VMware关键技巧:
shift+alt 鼠标切出
Bridged:共用一块(本地连接)网卡即使用真实网卡,会冲突局域网IP的可能
Host-only: 里面的机器连接到VMware Network Adapter VMnet1网卡了,不与局域网互联,只写本机连通
图形到字符 ctrl+alt+shift+(f1|f2|f3|f4|f5|f6|f7)
字符到图形 altr+(f1|f2|f3|f4|f5|f6|f7)
工具:putty连接操作 winscp文件操作 最专业工具: SecureCRT 再安装个lrzsz
vi /etc/inittab重要文件
id:5:initdefault //把5改成3就从字符界面启动
0 关机 3 字符界面 5 图形界面 6 重启
[root@localhost home]# [当前用户@主机名 当前目录]# ~代表家目录
i686 x86-64
目录说明
/root root用户的家目录
/home 普通用户的家目录
/dev 硬件设备。磁盘管理器,专门用来管理设备的
/media 测试目录,挂载光盘
/mnt 测试目录,挂载U盘
/boot linux的内核文件和init进程启动文件
/etc 应该程序配置文件
/usr 用户自定义安装的应该程序或源代码
/bin 所有用户都可以执行的命令
/usr/bin 所有用户可以执行的命令
/sbin root用户可以执行的程序
/sur/sbin 超级用户root才能执行的命令
/var 日志文件目录
/tmp 临时文件夹
常用命令:
ctrl+c 强制中断当前程序
clear 或 ctrl+l清屏
ctrl+u 清空当前命令行
tab键 命令补全功能
whoami 我是谁
ls ls -lh(K为单位) ls -lhS(排序) 查看当前目录下有哪些文件
ll看软链接
cd cd - 快速切换到上一目录 cd ~ cd 回到自己的家目录
ls --help ls命令的帮助
pwd 查看当前目录的位置
ifconfig 查看网卡上的IP地址
ifconfig eth0 192.168.8.100 临时设置IP地址
service network restart service sendmail stop/restart 停止/重启邮件服务
vi /etc/sysconfig/network-scripts/ifcfg-eth0
设置IP关键几行
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.105
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
vi file1.txt 新建文件
touch file2.txt touch {1..100}.txt touch .a.txt
rm -rf file1.txt rm -rf * 删除所有文件和目录
cp file1.txt /mnt 复制文件
mv file1.txt /mnt 移动文件
mv file1.txt file2.txt 重命名
head file1.txt 查看前10行
tail file2.txt 查看后10行
head -5 file3.txt
tail -5 file2.txt
find / -name file(*) 查找文件
updatedb 查找
locate file2 文件
ls httpd* ls -a
which ls 查找命令
cat file.txt 查看文件内容
cat /etc/passwd|grep ^root 查找所在行
cat /etc/passwd|grep -E "^user1|^root" 正则查询
mkdir dir1
rm -rf dir1
cp -R dir1 dir2
mv dir1 dir2
tree dir1
mkdir -p a/b/c/e/f/g/h
mkdir wxj wgc wxj168
mount /dev/cdroom /media 挂载光盘
umount /media
df 查挂载表 df -Th
ls cdrom
ll cdrom
!c
zip -h
ls --help
man iptables
rpm -qa |grep httpd 查看系统安装的rpm包有没有安装httpd
rpm -ql httpd-2.2.3-43.el5.centos 查看一个rpm包安装了什么,都安装在哪里
useradd wxj
passwd wxj
userdel -r wxj 与wxj有关的文件全删除
id wxj
chkconfig --level 3 httpd on
service httpd restart
pkill -HUP httpd 重载配置文件!!!!
mount -t tmpfs -o size=16m tmpfs /tmp
t表示类型,也就是要挂载文件系统的类型,表明你要挂载的tmpfs是一个tmpfs文件系统;o表示选项,选项里的一个size=100M表示大小是100M,之后就是挂载到/opt/
usermod -l <你要修改的用户名> -d /home/<你要修改的用户名> -m 以前的用户名
压缩包==================================
gz压缩包 国际标准
tar czf wxj.tar.gz file1.txt file2.txt 制作压缩包
tar tf wxj.tar.gz 查看里面文件
tar xzf wxj.tar.gz 解压缩包
tar xzf wxj.tar.gz -C /mnt/ 解压到指定目录
zip压缩包
zip file.zip file1.txt file2.txt file3.txt
zip -r /var/aa/ -r递归
unzip -l file.zip
unzip file.zip
网络设置
ifconfig
ifconfig eth0
ifconfig eth0 1962.168.1.6
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.6
service network restart
DNS:
/etc/resolv.conf
nameserver 202.96.134.133
nameserver 202.96.128.68
防火墙
一.iptables
iptables -L
iptables -L -n 看
iptables -F 清
service iptables save保存同时显示保存路径
二.selinux
sestatus
vi /etc/selinux/config
查看时间
date
date "+%Y-%m-%d %H:%M:%S"
修改时间
date -s "2015/6/29 12:20:36"
查看主机名
hostname
临时修改主机名
hostname serWeb01
永久修改主机名
vi /etc/sysconfig/network
查看运行级别
runlevel
查看系统挂情况================================
df -Th
系统挂载表文件
vi /etc/fstab
测试挂载表文件能否通过
mount -a
查看分区
fdisk -l
从sdb上分3G分区
fdisk /dev/sdb
按n键新分区
按p键建立第一个主分区
开始柱面直接回车
结束柱面+3072M空间
按p键查看分区
按t键修改文件系统
按w键保存退出
格式化成ext3文件系统:
mkfs.ext3 /dev/sdb1
挂载/mnt下使用:
mount /dev/sdb1 /mnt
查看挂载情况
df -Th
卸载
umount /dev/sdb1
软件安装============================================
查看系统中安装的所有rpm包:
rpm -qa yum list 带install的
是否安装了httpd文件包
rpm -qa|grep httpd yum list|grep httpd
统计共有多少个文件
ls |wc -l
安装rpm包
rpm -ivh httpd-2.2.3-43.el5.centos.i386.rpm yum -y inatall httpd-2.2.3-43.el5.centos.i386.rpm
强制卸载rpm包
rpm -e httpd-2.2.3-43.el5.centos --force --nodeps yum -y remove httpd-2.2.3-43.el5.centos.i386.rpm
查看了rpm安装了些什么
rpm -ql httpd-2.2.3-43.el5.centos.i386.rpm |more
==================================================================
修改yum配置文件,以本地光盘为源:
cd /etc/yum.repo.d/
mv CentOS-Base.repo CentOS-Base
vi CentOS-Media.repo
baseurl=file:///media
gpgcheck=0 关闭gpg签名
enabled=1 开启本yum源
用yum安装rpm包
yum list|more
yum工具来安装rpm软件包:
yum -y install httpd* mysql* php* 一键安装lamp
yum工具来卸载rpm软件包
yum -y remove httpd*少用
rpm -e mysql-5.0.77.4.el5_4.2 --nodeps
步二:cd /etc/yum.repos.d/
步三:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
四:mv CentOS7-Base-163.repo CentOS-Base.repo
然后 yum clean all
rpm包分安装一般会有三个文件
/usr/sbin/httpd
/etc/httpd/conf/httpd.conf
/etc/init.d/httpd
用户与权限==========================================
useradd wxj2010 添加用户wxj2010
/home/wxj2010 用户wxj2010家目录
userdel -r wxj2010 删除用户
passwd wxj2010 为用户设置密码
id wxj2010 查看用户wxj2010相关信息
usermod -L/-U wxj2010 禁用解禁用户wxj2010
su wxj2010 切换用户
rwxr-xr-x root root rootdir
r读4 w写2 x执行1
root用户(u) root组内其它用户(g) root组以外的其它用户(o)
所有人群(a) a=u+g+o
chmod o-x rootdir
chmod g+w,o-w file.mp3
chomd 755 /mnt/a.txt
查看用户和组:====================================
id wxj2010
把wxj2010加入,移出root组
gpasswd -a wxj2010 root
gpasswd -d wxj2010 root
sudo授权=============================================
visudo
带%是组,不带则是用户
wxj2010 localhost=/usr/sbin/useradd,/usr/sbin/userdel,/sbin/init 6
sudo /usr/sbin/useradd wxj2010
sudo /sbin/init 6
其它用户有权后就可以用了
sudo /usr/sbin/useradd wxj
ACL权限分配
setfacl -m u:wxj2010:rwx /wxjdir
getfacl /wxjdir
setfacl -x u:wxj2010 /wxjdir
setfacl -b /wxjdir
setfacl -m u:apache:rwx -R /www/html/
chown .www /alidata/www/cbdhome/EHome -R
服务管理============================================
查看进程
ps -ef|grep httpd
pstree
pstree -p
查看端口
netstat -tunpl|grep 80
netstat -tunpl|grep httpd
关闭进程
pkill httpd
kill -9 pid
查看服务器性能
top每3秒看一次负载
uptime查看平均负载
last查看服务器重要操作
who同进在线用户
任务计划================================
crontab -e编辑任务计划
crontab -l查看任务计划
crontab -r删除所有任务计划
00 03 * * * /sbin/init 6 每天3点重启服务器
分时日月周
00 03 * * * 每天3点
30 23 * * * 每天23:30
*/5 * * * * 每隔5分钟
59 23 * * 1-5 周一到周五的23:59
59 23 * * 1,3,5 周一周三周五的23:59
查看任务计划执行日志
tail -f /var/log/cron
ulimit -SHn 65535可以打开的文件个数
ln -s /media/ media
#!/bin/bash
#webbak.sh
date='date "+%Y-%m-%d"'
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/
/bin/bash /root/webbak.sh
重要目录或文件!!
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/resolv.conf
vi /etc/sysconfig/network
vi /etc/inittab
cd /etc/init.d/启动脚本 nginx|mysqld|php-fpm|tomcat7|vsftpd restart/stop
cd /etc/yum.repos.d/
cat /etc/fstab
cat /etc/passwd
cat /etc/shadow
vi /etc/selinux/config
vi /etc/fstab
/bin/mv CentOS-Base.repo CentOS-Base.repo.ori
cat /etc/group|grep wxj
vi /etc/sudoers
/etc/rc.d/init.d/httpd
service httpd restart
cat /var/log/messages
wxj2010:x:500:500::/home/wxj2010:/bin/bash
/etc/group
wxj2010:x:500
wxj2011:!$1$DcTMJDzt$.Nis97MX1gT3epqTWuHUY/:16133:0:99999:7:::
!!说明没有密码
!说明被禁用
http://blog.chinaunix.net/uid-24709751-id-3535308.html
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
cat /proc/cpuinfo | grep physical | uniq -c
当前CPU运行在32bit模式下, 但不代表CPU不支持64bit
getconf LONG_BIT
ls 目录 | wc -l
find ./ -type d | wc -l (目录个数)
find ./ -type f | wc -l (文件个数)
chmod 改变文件访问权限 -R递归
chown 改变文件拥有者及用户组 -R递归
chown root a.sh 改变用户拥有者为rot用户
chown oldboy.oldboy a.sh 改变用户拥有者为oldboy(前面那个)和所属组oldboy(后面那个)
chown .root a.sh 改变所属组为root
chown -R oldboy.oldboy oldboy -R 递归作用
find . -type d -exec chmod 755 {} + 这个是把当前目录下及子目录的属性改成755
find . -type f -exec chmod 644 {} + 这个是把当前目录及子目录中的文件属性改成644
groupadd incahome
adduser oldboy -g incahome
chown oldboy -R /home/oldboy
su - oldboy
./test.sh
rpm -qa |grep httpd*
tar xzf php-5.2.
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
AddType application/x-httpd-php
Directory Index
/usr/local/php/bin/phpize 制作模块
less INSTALL
less README
ErrorLog "logs/error_log";
CustomLog "logs/accuss_log";
AddType application/x=httpd-php.php
apache配置
ServerName www.cbd.com:80 没解析就用IP 则用域名,告诉apache你的主机名,可有可无
DocumentRoot "/user/local/apache2/htmdoc" 网站根目录
Order allow,deny 允许,再拒绝
Allow from all 允许所有人访问
Deny from all 拒绝所有人访问
FollowSymLinks 网站目录允许存在快捷方式
Indexs 先检查默认首页,不存在就以列表显示
DirectoryIndex
SVN
mkdir -p /var/svn/wxj
svnadmin create /var/svn/wxj
vi authz
[/]
user1=rw
vi passwd
user1=123
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/var/svn/wxj
svnserve -dr /var/svn/wxj --listen-pront 3691 启动服务
svn co svn://192.168.28.100 ./
cd /var/svn/wxj/hooks/
cp post-commit.tmpl post-commit
chmod a+x post-commit
vi post-commit
ecport LANG=en_US.UTF-8
svn up --non-interactive --username user1 --passwd 123 '/html/www'
nginx.conf配置文件,nginx负载均衡配置:
worker_processes 2;
events
{
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 60;
include extra/wxj.conf;
}
ream01.conf配置文件内容:
upstream wxj{
server 192.168.28.101 weight=5;
server 183.62.214.220 weight=5;
server 192.168.28.57 weight=5;
}
server{
listen 80;
server_name www.wxj.com;
location / {
proxy_pass http://wxj;
}
}
隐藏nginx版本号
1、在http {—}里加上server_tokens off; 如:
2、编辑php-fpm配置文件,如fastcgi.conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改):
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx;
nginx优化要点
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。
pm 如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
本服务器配置
1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
system()
disable_functions=system,phpinfo,shell_exec
LAMP/LNMP编译安装笔记
mkdir
env
mysql
nginx/apache
php
php_extension
说明:phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
yum install tree nmap sysstat lrzsz dos2unix -y 安装好后 执行一下这个,这装这几条命令,方便以后 你工作用
yum upgrade openssl bash -y
redis 技术
wget http://download.redis.io/releases/redis-2.8.12.tar.gz
src/redis-server启动
src/redis-cli shutdown 关闭
crontab
分时日月周
00 03 * * * 每天3点
30 23 * * * 每天23:30
*/5 * * * * 每隔5分钟
59 23 * * 1-5 周一到周五每天23:59
59 23 * * 1,3,5 周一,周三,周5的23:59
crontab
#!/bin/bash
#webbak.sh
date=`date "+%Y-%m-%d"`
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/
创建
crontab -e
查看
crontab -l crontab -u -l
*/1 * * * * /alidata/shell/payok_task.sh
删除
crontab -r
0 0 * * 0 /bin/bash /root/webbak.sh
*/1 * * * * /bin/chown www.www -R /alidata/www
cat /etc/sudoers
visudo
userwxj loclahost=/usr/sbin/useradd,/usr/sbin/userdel
sudo /usr/useradd wxj03
updatedb
locate httpd
iptables -A INPUT -i lo -j ACCEPT;
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT;
iptables -A INPUT -p tcp --dport 22 -j ACCEPT;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT;
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT;
iptables -P INPUT DROP;
iptables -P OUTPUT ACCEPT;
iptables -t nat -A PREROUTING -d 192.168.8.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.28.57:80
yum upgrade openssl bash -y
禁ROOT远程登录:
/etc/sudoers
wxj2010 ALL=(ALL) ALL
visudo -c 检查 语法
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/sudoers
chattr -i /etc/passwd
chattr -i /etc/inittab
chattr -i /etc/group
chattr -i /etc/shadow
chattr -i /etc/gshadow
chattr -i /etc/sudoers
备份 sshd配置文件 /etc/ssh/sshd_config
步五: vim /etc/ssh/sshd_config 在文件最后添加如下几行,然后退出保存
Port 52116 ##这个端口主是以后你自已的ssh连接端口,默认是22
UseDNS no
AddressFamily inet
PermitRootLogin no
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication yes
sudo su -
VMware关键技巧:
shift+alt 鼠标切出
Bridged:共用一块(本地连接)网卡即使用真实网卡,会冲突局域网IP的可能
Host-only: 里面的机器连接到VMware Network Adapter VMnet1网卡了,不与局域网互联,只写本机连通
图形到字符 ctrl+alt+shift+(f1|f2|f3|f4|f5|f6|f7)
字符到图形 altr+(f1|f2|f3|f4|f5|f6|f7)
工具:putty连接操作 winscp文件操作 最专业工具: SecureCRT 再安装个lrzsz
vi /etc/inittab重要文件
id:5:initdefault //把5改成3就从字符界面启动
0 关机 3 字符界面 5 图形界面 6 重启
[root@localhost home]# [当前用户@主机名 当前目录]# ~代表家目录
i686 x86-64
目录说明
/root root用户的家目录
/home 普通用户的家目录
/dev 硬件设备。磁盘管理器,专门用来管理设备的
/media 测试目录,挂载光盘
/mnt 测试目录,挂载U盘
/boot linux的内核文件和init进程启动文件
/etc 应该程序配置文件
/usr 用户自定义安装的应该程序或源代码
/bin 所有用户都可以执行的命令
/usr/bin 所有用户可以执行的命令
/sbin root用户可以执行的程序
/sur/sbin 超级用户root才能执行的命令
/var 日志文件目录
/tmp 临时文件夹
常用命令:
ctrl+c 强制中断当前程序
clear 或 ctrl+l清屏
ctrl+u 清空当前命令行
tab键 命令补全功能
whoami 我是谁
ls ls -lh(K为单位) ls -lhS(排序) 查看当前目录下有哪些文件
ll看软链接
cd cd - 快速切换到上一目录 cd ~ cd 回到自己的家目录
ls --help ls命令的帮助
pwd 查看当前目录的位置
ifconfig 查看网卡上的IP地址
ifconfig eth0 192.168.8.100 临时设置IP地址
service network restart service sendmail stop/restart 停止/重启邮件服务
vi /etc/sysconfig/network-scripts/ifcfg-eth0
设置IP关键几行
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.105
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
vi file1.txt 新建文件
touch file2.txt touch {1..100}.txt touch .a.txt
rm -rf file1.txt rm -rf * 删除所有文件和目录
cp file1.txt /mnt 复制文件
mv file1.txt /mnt 移动文件
mv file1.txt file2.txt 重命名
head file1.txt 查看前10行
tail file2.txt 查看后10行
head -5 file3.txt
tail -5 file2.txt
find / -name file(*) 查找文件
updatedb 查找
locate file2 文件
ls httpd* ls -a
which ls 查找命令
cat file.txt 查看文件内容
cat /etc/passwd|grep ^root 查找所在行
cat /etc/passwd|grep -E "^user1|^root" 正则查询
mkdir dir1
rm -rf dir1
cp -R dir1 dir2
mv dir1 dir2
tree dir1
mkdir -p a/b/c/e/f/g/h
mkdir wxj wgc wxj168
mount /dev/cdroom /media 挂载光盘
umount /media
df 查挂载表 df -Th
ls cdrom
ll cdrom
!c
zip -h
ls --help
man iptables
rpm -qa |grep httpd 查看系统安装的rpm包有没有安装httpd
rpm -ql httpd-2.2.3-43.el5.centos 查看一个rpm包安装了什么,都安装在哪里
useradd wxj
passwd wxj
userdel -r wxj 与wxj有关的文件全删除
id wxj
chkconfig --level 3 httpd on
service httpd restart
pkill -HUP httpd 重载配置文件!!!!
mount -t tmpfs -o size=16m tmpfs /tmp
t表示类型,也就是要挂载文件系统的类型,表明你要挂载的tmpfs是一个tmpfs文件系统;o表示选项,选项里的一个size=100M表示大小是100M,之后就是挂载到/opt/
usermod -l <你要修改的用户名> -d /home/<你要修改的用户名> -m 以前的用户名
压缩包==================================
gz压缩包 国际标准
tar czf wxj.tar.gz file1.txt file2.txt 制作压缩包
tar tf wxj.tar.gz 查看里面文件
tar xzf wxj.tar.gz 解压缩包
tar xzf wxj.tar.gz -C /mnt/ 解压到指定目录
zip压缩包
zip file.zip file1.txt file2.txt file3.txt
zip -r /var/aa/ -r递归
unzip -l file.zip
unzip file.zip
网络设置
ifconfig
ifconfig eth0
ifconfig eth0 1962.168.1.6
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.6
service network restart
DNS:
/etc/resolv.conf
nameserver 202.96.134.133
nameserver 202.96.128.68
防火墙
一.iptables
iptables -L
iptables -L -n 看
iptables -F 清
service iptables save保存同时显示保存路径
二.selinux
sestatus
vi /etc/selinux/config
查看时间
date
date "+%Y-%m-%d %H:%M:%S"
修改时间
date -s "2015/6/29 12:20:36"
查看主机名
hostname
临时修改主机名
hostname serWeb01
永久修改主机名
vi /etc/sysconfig/network
查看运行级别
runlevel
查看系统挂情况================================
df -Th
系统挂载表文件
vi /etc/fstab
测试挂载表文件能否通过
mount -a
查看分区
fdisk -l
从sdb上分3G分区
fdisk /dev/sdb
按n键新分区
按p键建立第一个主分区
开始柱面直接回车
结束柱面+3072M空间
按p键查看分区
按t键修改文件系统
按w键保存退出
格式化成ext3文件系统:
mkfs.ext3 /dev/sdb1
挂载/mnt下使用:
mount /dev/sdb1 /mnt
查看挂载情况
df -Th
卸载
umount /dev/sdb1
软件安装============================================
查看系统中安装的所有rpm包:
rpm -qa yum list 带install的
是否安装了httpd文件包
rpm -qa|grep httpd yum list|grep httpd
统计共有多少个文件
ls |wc -l
安装rpm包
rpm -ivh httpd-2.2.3-43.el5.centos.i386.rpm yum -y inatall httpd-2.2.3-43.el5.centos.i386.rpm
强制卸载rpm包
rpm -e httpd-2.2.3-43.el5.centos --force --nodeps yum -y remove httpd-2.2.3-43.el5.centos.i386.rpm
查看了rpm安装了些什么
rpm -ql httpd-2.2.3-43.el5.centos.i386.rpm |more
==================================================================
修改yum配置文件,以本地光盘为源:
cd /etc/yum.repo.d/
mv CentOS-Base.repo CentOS-Base
vi CentOS-Media.repo
baseurl=file:///media
gpgcheck=0 关闭gpg签名
enabled=1 开启本yum源
用yum安装rpm包
yum list|more
yum工具来安装rpm软件包:
yum -y install httpd* mysql* php* 一键安装lamp
yum工具来卸载rpm软件包
yum -y remove httpd*少用
rpm -e mysql-5.0.77.4.el5_4.2 --nodeps
步二:cd /etc/yum.repos.d/
步三:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
四:mv CentOS7-Base-163.repo CentOS-Base.repo
然后 yum clean all
rpm包分安装一般会有三个文件
/usr/sbin/httpd
/etc/httpd/conf/httpd.conf
/etc/init.d/httpd
用户与权限==========================================
useradd wxj2010 添加用户wxj2010
/home/wxj2010 用户wxj2010家目录
userdel -r wxj2010 删除用户
passwd wxj2010 为用户设置密码
id wxj2010 查看用户wxj2010相关信息
usermod -L/-U wxj2010 禁用解禁用户wxj2010
su wxj2010 切换用户
rwxr-xr-x root root rootdir
r读4 w写2 x执行1
root用户(u) root组内其它用户(g) root组以外的其它用户(o)
所有人群(a) a=u+g+o
chmod o-x rootdir
chmod g+w,o-w file.mp3
chomd 755 /mnt/a.txt
查看用户和组:====================================
id wxj2010
把wxj2010加入,移出root组
gpasswd -a wxj2010 root
gpasswd -d wxj2010 root
sudo授权=============================================
visudo
带%是组,不带则是用户
wxj2010 localhost=/usr/sbin/useradd,/usr/sbin/userdel,/sbin/init 6
sudo /usr/sbin/useradd wxj2010
sudo /sbin/init 6
其它用户有权后就可以用了
sudo /usr/sbin/useradd wxj
ACL权限分配
setfacl -m u:wxj2010:rwx /wxjdir
getfacl /wxjdir
setfacl -x u:wxj2010 /wxjdir
setfacl -b /wxjdir
setfacl -m u:apache:rwx -R /www/html/
chown .www /alidata/www/cbdhome/EHome -R
服务管理============================================
查看进程
ps -ef|grep httpd
pstree
pstree -p
查看端口
netstat -tunpl|grep 80
netstat -tunpl|grep httpd
关闭进程
pkill httpd
kill -9 pid
查看服务器性能
top每3秒看一次负载
uptime查看平均负载
last查看服务器重要操作
who同进在线用户
任务计划================================
crontab -e编辑任务计划
crontab -l查看任务计划
crontab -r删除所有任务计划
00 03 * * * /sbin/init 6 每天3点重启服务器
分时日月周
00 03 * * * 每天3点
30 23 * * * 每天23:30
*/5 * * * * 每隔5分钟
59 23 * * 1-5 周一到周五的23:59
59 23 * * 1,3,5 周一周三周五的23:59
查看任务计划执行日志
tail -f /var/log/cron
ulimit -SHn 65535可以打开的文件个数
ln -s /media/ media
#!/bin/bash
#webbak.sh
date='date "+%Y-%m-%d"'
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/
/bin/bash /root/webbak.sh
重要目录或文件!!
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/resolv.conf
vi /etc/sysconfig/network
vi /etc/inittab
cd /etc/init.d/启动脚本 nginx|mysqld|php-fpm|tomcat7|vsftpd restart/stop
cd /etc/yum.repos.d/
cat /etc/fstab
cat /etc/passwd
cat /etc/shadow
vi /etc/selinux/config
vi /etc/fstab
/bin/mv CentOS-Base.repo CentOS-Base.repo.ori
cat /etc/group|grep wxj
vi /etc/sudoers
/etc/rc.d/init.d/httpd
service httpd restart
cat /var/log/messages
wxj2010:x:500:500::/home/wxj2010:/bin/bash
/etc/group
wxj2010:x:500
wxj2011:!$1$DcTMJDzt$.Nis97MX1gT3epqTWuHUY/:16133:0:99999:7:::
!!说明没有密码
!说明被禁用
http://blog.chinaunix.net/uid-24709751-id-3535308.html
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
cat /proc/cpuinfo | grep physical | uniq -c
当前CPU运行在32bit模式下, 但不代表CPU不支持64bit
getconf LONG_BIT
ls 目录 | wc -l
find ./ -type d | wc -l (目录个数)
find ./ -type f | wc -l (文件个数)
chmod 改变文件访问权限 -R递归
chown 改变文件拥有者及用户组 -R递归
chown root a.sh 改变用户拥有者为rot用户
chown oldboy.oldboy a.sh 改变用户拥有者为oldboy(前面那个)和所属组oldboy(后面那个)
chown .root a.sh 改变所属组为root
chown -R oldboy.oldboy oldboy -R 递归作用
find . -type d -exec chmod 755 {} + 这个是把当前目录下及子目录的属性改成755
find . -type f -exec chmod 644 {} + 这个是把当前目录及子目录中的文件属性改成644
groupadd incahome
adduser oldboy -g incahome
chown oldboy -R /home/oldboy
su - oldboy
./test.sh
rpm -qa |grep httpd*
tar xzf php-5.2.
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
AddType application/x-httpd-php
Directory Index
/usr/local/php/bin/phpize 制作模块
less INSTALL
less README
ErrorLog "logs/error_log";
CustomLog "logs/accuss_log";
AddType application/x=httpd-php.php
apache配置
ServerName www.cbd.com:80 没解析就用IP 则用域名,告诉apache你的主机名,可有可无
DocumentRoot "/user/local/apache2/htmdoc" 网站根目录
Order allow,deny 允许,再拒绝
Allow from all 允许所有人访问
Deny from all 拒绝所有人访问
FollowSymLinks 网站目录允许存在快捷方式
Indexs 先检查默认首页,不存在就以列表显示
DirectoryIndex
SVN
mkdir -p /var/svn/wxj
svnadmin create /var/svn/wxj
vi authz
[/]
user1=rw
vi passwd
user1=123
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/var/svn/wxj
svnserve -dr /var/svn/wxj --listen-pront 3691 启动服务
svn co svn://192.168.28.100 ./
cd /var/svn/wxj/hooks/
cp post-commit.tmpl post-commit
chmod a+x post-commit
vi post-commit
ecport LANG=en_US.UTF-8
svn up --non-interactive --username user1 --passwd 123 '/html/www'
nginx.conf配置文件,nginx负载均衡配置:
worker_processes 2;
events
{
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 60;
include extra/wxj.conf;
}
ream01.conf配置文件内容:
upstream wxj{
server 192.168.28.101 weight=5;
server 183.62.214.220 weight=5;
server 192.168.28.57 weight=5;
}
server{
listen 80;
server_name www.wxj.com;
location / {
proxy_pass http://wxj;
}
}
隐藏nginx版本号
1、在http {—}里加上server_tokens off; 如:
2、编辑php-fpm配置文件,如fastcgi.conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改):
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx;
nginx优化要点
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。
pm 如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
本服务器配置
1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
system()
disable_functions=system,phpinfo,shell_exec
LAMP/LNMP编译安装笔记
mkdir
env
mysql
nginx/apache
php
php_extension
说明:phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
yum install tree nmap sysstat lrzsz dos2unix -y 安装好后 执行一下这个,这装这几条命令,方便以后 你工作用
yum upgrade openssl bash -y
redis 技术
wget http://download.redis.io/releases/redis-2.8.12.tar.gz
src/redis-server启动
src/redis-cli shutdown 关闭
crontab
分时日月周
00 03 * * * 每天3点
30 23 * * * 每天23:30
*/5 * * * * 每隔5分钟
59 23 * * 1-5 周一到周五每天23:59
59 23 * * 1,3,5 周一,周三,周5的23:59
crontab
#!/bin/bash
#webbak.sh
date=`date "+%Y-%m-%d"`
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/
创建
crontab -e
查看
crontab -l crontab -u -l
*/1 * * * * /alidata/shell/payok_task.sh
删除
crontab -r
0 0 * * 0 /bin/bash /root/webbak.sh
*/1 * * * * /bin/chown www.www -R /alidata/www
cat /etc/sudoers
visudo
userwxj loclahost=/usr/sbin/useradd,/usr/sbin/userdel
sudo /usr/useradd wxj03
updatedb
locate httpd
iptables -A INPUT -i lo -j ACCEPT;
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT;
iptables -A INPUT -p tcp --dport 22 -j ACCEPT;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT;
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT;
iptables -P INPUT DROP;
iptables -P OUTPUT ACCEPT;
iptables -t nat -A PREROUTING -d 192.168.8.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.28.57:80
yum upgrade openssl bash -y
禁ROOT远程登录:
/etc/sudoers
wxj2010 ALL=(ALL) ALL
visudo -c 检查 语法
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/sudoers
chattr -i /etc/passwd
chattr -i /etc/inittab
chattr -i /etc/group
chattr -i /etc/shadow
chattr -i /etc/gshadow
chattr -i /etc/sudoers
备份 sshd配置文件 /etc/ssh/sshd_config
步五: vim /etc/ssh/sshd_config 在文件最后添加如下几行,然后退出保存
Port 52116 ##这个端口主是以后你自已的ssh连接端口,默认是22
UseDNS no
AddressFamily inet
PermitRootLogin no
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication yes
sudo su -