Linux管理杂记

安装

在虚拟机中选择Other Linux 2.6 xkernel   //2.6的内核,支持centOS 5.5

 

linux分区

 

最多分三个主分区,有一个扩展分区,从扩展分区中分逻辑分区

分区最多支持4个主分区,即使有剩余空间也无法再分区,所以最多分三个主分区。

 

第一个主分区:/dev/sda1     (服务器中第一块scsi硬盘中的第一个主分区)

#s  指的scsi硬盘  [#h ide硬盘]

#d  disk磁盘

#a  服务器中的第一块磁盘

#1  第一块磁盘中的第一个主分区

 

//扩展

/dev/hdb4         服务器中第二块ide硬盘中的第四个主分区

/dev/sda5     服务器中第一块scsi硬盘中第一个逻辑分区

 

 

三分区分法:

/dev/sda1          /boot       #放启动文件        #1G即可

/dev/sda2          /             #根目录             #挂载点,文件系统选择ext3

swap分区      #swap分区,虚拟内存系统(内存不足时充当内存扩展)#物理内存1x-2x之间

 

/boot分区可以不用分,可以直接挂载在根目录分区

根和/swap分区必须要分

 

lvm逻辑卷管理(linux默认分区法)

/dev/vg00/lv00 / 根分区 80G         #lv00是逻辑卷,逻辑卷分区可以自动扩容

/dev/vg00/lv01/  #swap分区

/dev/sda           /boot分区

 

 

VMware 版本选择(跟所装的linux内核向对应)

Red Hat Enterprise Linux 5

Other Linux2.6.x kernel

 

网卡配置

不选择DHCP,因为虚拟环境中没有DHCP服务器

IP地址          子网掩码

192.168.100.1        255.255.255.0

 

软件安装选择

选自定义软件包安装customer

development(开发工具)       development tools(把其中的开发工具全部选择)

 

 

 

 

 

 

IP地址与子网掩码的关系

 

-----与运算------

192.168.100.1

11000000     10101000     1001000  00000001

255.255.255.0

11111111     11111111     1111111  00000000

-------------------------

11000000     10101000      1100100  00000000

结果:192.168.100.0 网段号

 

linux启动安装过程中的配置:

1、iptables防火墙

2、selinux防火墙

3、不要创建普通用户

 

进入系统以后:

==============================================

1、修改ip:     安装前配置的ip是无法生效的,修改网卡的配置文件,把onboot=yes,设置计算机每次重启都读取这个文件,这样ip才能生效

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO(启动协议)=static(手动配置)

IPADDR=192.168.100.1

NETMASK=255.255.255.0

ONBOOT=yes

配置好后要让配置文件生效,方法:

1)、init6       #计算机重启的命令

2)、service network restart     #重启服务

2、设置计算机每次启动是从三级别启动:

原因:常用启动级别3级别(从字符界面启动),5级别(从图形界面启动),蓝色界面按下a,输入级别,再输入个a,继续启动

命令:

vi /etc/inittab

id:3:initdefault

:wq

3、history -c       #清空历史命令

4、init  0      #把计算机关机

5、做快照

==========================================

让linux和win进行通信,windows远程登录linux系统:

1、 让两台计算机网卡设置同一个模式,把两台计算机连到同一个网段,同时连到同一个交换机,方法:两 块网卡模式必须相同

2、 把ip与子网掩码配置到同一个网段

 

 

测试两台计算机的连通性:

1、ping192.168.100.1

reply from ... ... ttl=64 #连通状态

request timed out         #无连通状态

远程连接软件

1、putty       #远程登录linux

2、winscp #远程传输文件

 

 

snippets(vim工具)

 

linux查看ip工具ifconfig eth0

 

 

 

第二讲Linux 命令

 

 

网络配置注意事项

1、不要把两块网卡的ip设置到同一个网段

2、只能有一块网卡有网关

 

Pc属于路由设备,所以它也遵守上面的规则

 

Linux排错

1、系统日志->/var/log/messages

2、应用程序日志->var/log/httpd/access.log

3、通讯日志->tcpdump -i eth0 (从网卡eth0上抓取数据)       #tcp/ip协议

 

Linux用户:

1、root              超级用户

2、系统用户        应用程序的进程执行者

3、普通用户        后期用来登陆测试的用户

 

Linux根目录:

1、bin

所有用户都能执行的指令

2、dev

底层的物理设备都会显示在这儿,如果使用的话需要挂载,即映射

计算机里底层的硬件设备标示,硬件设备只有映射后才能使用

将dev下的hdc(光驱)映射到media目录下,然后进行访问

mount  /dev/hdc  /media/

df命令,查看linux 中的映射表

3、home

普通用户的家目录,宿主目录

比如/home/user1,普通用户user1的家目录

4、sbin

只有root用户才能执行的命令

5、proc

内存镜像文件(不要直接存储与修改)

6、var

日志所在的目录

7、boot

系统内核和镜像文件所在目录(启动文件)

8、etc

配置文件所在的地方

9、lib

库文件所在的地方(类似win中的dll文件所在处)

10、media

挂载光盘的空目录

11、mnt

测试空目录

12、root

root用户的家目录

13、usr

/usr/bin        所有用户都能执行的指令

/usr/sbin       root用户才能执行的指令

14、selinux   linux防火墙

 

 

 

常用命令

 

! 后跟命令名,可以查看最近调用该命令的详细信息

 

文件权限(用户与用户组):

rwxr-xr-x         root   root    other    (对应了3类人群的3种权限)

用户      组        组里除了root外的其他用户

7         5         5

chown  user1:user1 file      #该变所有者和所属组(:前面为所有者,:后面为所属组)

chown root file

chown :root file

创建的目录普遍比文件要多个x权限,因为目录需要可执行,才能进入查看

 

umask        #权限掩码(最好不要修改)

#目录->755

#文件->644

 

rwx  读、写、执行

rwx  111         421=>7

r-x   101   401=>5

rw-   110   420=>6

r--    100   4

 

权限人群:

user          所有者

group        所属组

other         其他人

all              所有人

 

chmod 755 dir       #对文件或者目录设置权限

chmod 644 file

chmod  a+x file      #给所有人加一个执行权限

chmod  a-x file      #给所有人减一个执行权限

chmod  g+x file     #对所属组

 

 

bc

计算器

ctrl+c

强制退出当前命令行

 

ifconfig -a 能查看所有网卡信息,包括隐藏网卡,linux中禁用网卡是将其隐藏

 

ifconfig eth0 douw/up(关闭开启网卡)

 

ls

查看当前目录下的文件

-l    查看文件的属性

-a  查看目录下所有文件,包括隐藏文件(.或..开头的文件)

-h  查看文件的大小,换算单位

-d   查看目录属性

-R  递归查看

ls -lSh  查看当前目录下的文件,从大到小排列(S从大到小倒序排序,s从小到大排序)

man

查看命令的帮助手册

ls --help

查看ls的参数(简短的帮助)

ls -h

 

cd  切换目录

cd - 切换至最近切换过的目录

特殊目录

.  当前目录

.. 上级目录

~ 回到当前用户的家目录(cd同样可以快速回到当期用户家目录)

 

 

文件操作

touch file         #创建一个文件

touch file{1..100}        #{}集合操作符 使用..指定范围

 

rm -rf              #删除一个文件

rm -rf *                 #删除当前目录下所有的文件(无法删除隐藏文件)

!rm                 #调用历史中最近一次以rm开头的指令

 

cp file /mnt/     #复制一个文件到测试目录mnt/下

 

mv file /mnt/    #移动一个文件

 

cat file             #查看文件内容

cat file |wc -l    #查看文件有多少行

cat file |wc -c    #查看有多少字符

 

more file          #查看并分页显示

 

ln -s file /root/linkfile.exe         #创建file的快捷方式(s指源)

 

创建一个20M的文件

dd if=/dev/zero of=file1 bs=1M count=20(zero是一个设备,具有无限大的空间)

 

目录操作

 

mkdir test        #创建一个目录

mkdir -p test2/test3/test4        #递归创建目录

 

tree test2         #递归查看文件和目录(树形结构显示)

 

rm -rf test        #删除一个目录

 

cp test /mnt     #复制test目录到mnt下(无法成功)

cp -r test /mnt/           #递归的复制

cp -r test/ /mnt/     #将test下所有文件拷贝到mnt下,包括隐藏文件(cp -r test/*是无法拷贝隐                              藏文件的)

 

mv test /mnt    #移动test目录到mnt下

 

rsync -a test /mnt  #将test拷贝到/mnt下

rsync -a test/ /mnt #将test下所有文件拷贝到/mnt下

rsync的功能比cp功能更强大,能够迁移整个操作系统

 

查询搜索操作

 

which         #一般用来搜索执行程序,命令

which mv

which touch

which ls

 

find                 #有目的的查找特定文件

find /etc/ -namehttpd.conf

find /etc/ -namehttpd*           查找以httpd开头的文件

find /etc/ -name*conf       查找以conf结尾的文件

 

find /etc -nameinittab -exec ls -l {} \;使用大括号进行向后引用,将查找出来的结果传递给后续命令(有些命令必须在后面跟文件名,比如rm -rf)

find ./ -useruser1 -exec rm -rf {} \;     把从root下查找到的所有者是user1的文件删除掉

 

grep    #从文件中搜索包含linux的行

cat file |grep"php"       搜索file中包含php的行

cat file |grep -i"very"   -i是忽略大小写搜索

cat/etc/passwd|grep -E      使用正则进行匹配

 

 

压缩包

创建gz压缩文件

tar czffile.tar.gz file1    (c创建,zf代表gz结尾的压缩文件)     压缩

tar xzffile.tar.gz           解压(把c换成x)

 

tar cjffile.tar.bz2 file  创建

tar xjffile.tar.bz2         解压

 

zip services.zip/etc/services     压缩zip文件

zip -r test.zip/test       压缩zip目录

unzip test.zip         解压

 

 

 

vim编辑器的使用

vim是vi的增强版本,比如语法和函数高亮显示等

d$从光标处删除到行结尾

d^从光标处删除到行开头

 

 

linux共有7个终端,第七个终端是图形界面终端

当一个终端崩溃时,可以使用alt+(F1-F6)启动6个字符界面

 

 

ctrl+s暂停一个终端

ctrl+q继续一个终端

 

linux启动过程:

BIOS->mbr->grub->linux内核->init->/etc/inittab->3->/etc/rc.d/rc.sysinit->时钟,主机名,网卡,分区挂载->/etc/rc.d/rc3.d/->启动一系统进程->进入登录窗口->登录

 

1.bios

2.mbr

3./etc/grub.conf

#/boot/grub/grub.conf

#linux系统内核文件

#linux系统内核文件在/boot/vmlinuz-*

4./boot/initrd*

#系统镜像文件,把init启动起来

4.init

#是计算机启动的第一个进程,后期的工作都由它来完成,它的pid是1

5./etc/inittab

#id:3:initdefault

6./etc/rc.d/rc.sysinit

#时钟

#主机名

#分区挂载

7./etc/fstab

#/dev/hdc /media iso9660 defaults 0 0

#光盘自动挂载

#检测/etc/fstab新添加的未被挂载的分区:mount-a

8.查看进程

ps -ef

9.查看端口

netstat -tunpl |grep :80

10.把3级别下的httpd改成以s开头

chkconfig httpd on

#2,3,4,5级别下都启动

chkconfig --level 3 httpd on

#apache只在3级别下为s开头,随机启动

11.查看进程在不同的级别下分别为on或off

chkconfig --list httpd

12.linux中系统级别

0 关机

1 单用户模式,比如:破解密码

2 字符界面,但是nfs这些网络设置

3 字符界面

4 未被使用

5 图形界面

6 重启

 

 

附加知识:

1.nc

nc -l 20000

#开启20000端口

nc localhost 20000

#连接localhost这台计算机的20000端口

2.sendmail

#本系统的默认邮件服务器

#chkconfig sendmail off   #2,3,4,5为off

#service sendmail stop    #关闭sendmail邮件服务

#不用邮件服务器的就关闭它

3.查看本系统邮件

#mail

 

创建一个20000端口

nc -l 20000

穿过20000端口连接计算机nc localhost 20000

 

 

 

 

软件包的安装

 

第4课2012年5月28日

Linux软件包安装:

分为两部分:1、rpm包安装,2、源码包安装

源代码的安装方法所有系统都能支持,rpm包偏向于红帽和centos系统

 

查看进程命令

pstree |grep httpd

 

源码包的安装:

1、../configure   #生成配置文件(生成Makefile文件,该文件是配置地图)

2、make           #编译,通过gcc把c代码编译成执行程序

3、make install   #安装,把执行程序拷贝到相应的目录下

 

rpm(red hat project manager)包安装(如何安装、卸载)

rpm -vih httpd-2.2.3-43.el5.centos.i386.rpm

 

rpm制作过程:

1、制作Makefile文件

2、编译

3、封装到rpm包中,等待用户去安装这个rpm包

 

rpm包安装

1、rpm -vih httpd-2.2.3-43.el5.centos.i386.rpm

#-i install

#-v 可视化安装

#-h 百分比进度条

#如果rpm有依赖性的话

     --nodeps  截断依赖性

     --force         强制安装

2、rpm -qa

#查看系统中已经安装了的所有rpm软件包

rpm -qa |grep vsftpd*

#查看系统中是否已经安装vsftpd rpm包

3、rpm -qlhttp-i386

#查看某安装包安装文件所在路径

主要查看3个文件:1)、配置文件

 2)、执行程序(一般是二进制文件,启动该文件需要考虑pid分配,端口号等许多问题)

 3)、服务脚本(控制执行程序的参数)

 

4、/etc/rc.d/init.d             去该文件下找启动配置文件

vi vsftpd                     通过vi打开该配置文件

vi /etc/vsftpd.conf  

./vsftpd start               启动vsftpd程序

 

5、反查看

rpm -qf vsftpd.conf

#查看某文件是由哪个软件包安装的

6、卸载

rpm -e vsftpd-2.0.5-16.e15_4.1

#包名来自=>rpm -qa |grephttpd

卸载回出现依赖性问题:

#rpm -e vsftpd-2.0.5-16.e15_4.1 --nodeps

 

 

rpm依赖性:

1、安装A包,首先先得安装B包,安装B包首先先得安装C包。

 

使用yum源来安装(解决了rpm安装的依赖性):

(1)、准备光盘挂载

mount /dev/hdc /media

 (2)、光盘重启自动挂载

vi /etc/fstab

/dev/hdc /media  iso9660  defaults 0 0

 (3)、yum源设置

1)、cd /etc/yum.repos.d/

2)、mv CentOS-Base.repo CentOS-Base.repo.bak

3)、vi CentOS-Media.repo

[c5-media]

name=CentOS-&releasever - Media

baseurl=file:///media

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

4)、查看yum源中包含php的rpm包

yum list |grep php*

5)、yum安装

yum -y install php*(-y参数代表yes)

#全自动安装php*开头的rpm包

6) 、yum卸载

yum -y remove dovecot*

 

yum clean all     #清除yum下载缓存  

源码包安装

在生成配置地图文件的时候检测错误

1、生成配置文件

源码包一般安装在/usr/local下与包名有关的文件夹下

./configure --prefix=/usr/local/apache2

2、编译

如果环境里没有gcc编译器 运行:     yum -y install gcc*

make      ->C代码编译成二进制程序

3、安装

make install       ->把二进制程序拷贝到/usr/local/apache2/下

 

安装apache源代码(源码包:httpd-2.2.9.tar.gz):

1、把源码包httpd-2.2.9.tar.gz解压

tar xzf http-2.2.9.tar.gz

 cd然后检查有没有configure脚本

2、生成配置文件

./configure--prefix=/usr/local/apache2

3、编译

make

4、安装

make install

5、cd/usr/local/apache2/

进入安装目录

6、启动apache

/usr/local/apache2/bin/apachectlrestart

7、查进程

ps -ef|grephttpd

8、查端口

netstat -tunpl|grep :80

 

 

单用户和救援模式:

1、linux用户密码破解

启动时(grub界面,按两下a键),在启动模式输入1,进入单用户模式,可以以root身份进入

passwd root修改密码

init6(重启)| init3(直接跳到3级别)

2、防止破解

加grub密码,防止进入grub

vi/etc/grub.conf     =>/boot/brub/grub.conf(编辑这个链接文件)

在任意地方加上password 123456(加上多行password,启动时就得输入多次密码)

然后平稳重启

3、救援模式

grub密码丢失的情况下进行救援模式

在重启时,按esc,从光驱启动,按F5键,或是输入linux rescue

修改grub.conf

然后reboot重启(init命令在此模式下无法使用)

 

 

 

用户和权限

第5课2012年5月29

1、用户

切换登陆用户:

(1)、切换多个终端登录测试

(2)、su - user1(-保留用户所有文件),su最好以root用户执行,其他普通用户才能正常读写

  使用exit依次退出

2、目录和文件

3、权限(读写执行)

 

与用户有关的操作:

1、添加用户

useradd user1

2、删除用户

userdel -r user1(-r参数将用户彻底删掉,将用户相关文件全部删除,当下次再创建该用户时不会出现错误)

3、修改密码

passwd user1

4、与用户有关的文件(最主要的四个)

/etc/passwd       用户账号信息

uid为0是超级管理员,500为普通用户开始值

 

/etc/shadow       用户密码

/etc/group         用户组容器

/home/user1      用户家目录

 

usermod -s /bin/bash username激活添加的账户

 

组:

1、添加组

groupadd grp1

2、删除组

groupdel grp1

 

用户与组的关系:

1、如何把用户加入组(选择第3种方法)

(1)、#usermod -g grp1 user1(将创建user1时user1的所属组删除并加入grp1组)

(2)、#usermod -G grp2 user2(将user2加入grp2,user2原本所属组保留,将用户删除组时有问题)

(3)、gpasswd -a user3 grp3    (将用户user3加入grp3组)

-a add

  gpasswd -d user3 grp3    (将用户user3从grp3组中删除)

-d delete

2、如何查看组内用户

cat  /etc/group

3、如何查看用户属于哪些组

id user1

 

权限分配(掌握acl方法):

setuid          setgid         t位     #这3个位组成权限里的第一个值如0777的0

4                 2                 1                                                  4755

所有者s位     所有组s位     其他人t位

1、chmod

chmod 777 test

2、chown

chownuser1:user1 test

chown :user1 -Rtest         #递归的修改所属组,使其下级目录也修改

3、setuid(设置文件所有者uid),对可执行文件使用才有意义

一般只针对执行程序设置,s位是什么意思?

chmod u+s/bin/touch       #touch命令创建的文件有s

chmod u+s/bin/su

chmod 4755/bin/su

 

关于s位:ll    /bin/su

# -rwsr-xr-x  1  root root  23968  ......  /bin/su

当s位存在时说明,任何一个有执行权限的用户都可以使用su命令,而且是以root用户身份在执行(如su切换用户后passwd也是以root身份使用,就有执行权限了,而user1切换uesr2时无法执行passwd,则无法输入密码)

删除s位:chmod u-s /bin/su

 

4、setgid      #目录的所属组可以往下继承

chmod g+s test

 

chown :user1 -Rweb    #web下创建的文件所属组全部为user1,无论多少层目录,但是新建的文件所属组又会变为原来的组

 

5、t位(设置other位)  #所有人共享一块空间,只能对自己创建的文件进行修改删除

如果不设置t位的话,虽然每个用户只能读自己的文件或目录,但是无法限制删除的权限

chmod 757 web

#other有所有权限时,自己只能删除修改自己的东西

chmod o+t web

chmod 1757 web

 

6、sudo(选择第一种方法)      #对执行过程(如命令)或执行程序设置权限,要用sudo来授权

(1)、visudo

对组设置使用%组名,对用户直接输入用户名,‘,’分割权限

使用被设置命令时,将命令路径补全,然后前面加上sudo

user1 localhost=/usr/sbin/useradd,/usr/sbin/userdel

#user1 localhost=/usr/sbin/useradd user4,/usr/sbin/userdel user4

测试:

sudo /usr/sbin/useradd user4

#第一次需要输入user1的密码,是有时效性的

(2)、vi /etc/sudoer

 

7、acl(访问控制列表)

(1)、设置acl权限

  setfacl -m u:user1:r-- web        #setf(file)acl -m(modify)

  setfacl -m u:user2:rw- web

  setfacl -m u:user3:rwx web

 

  添加默认权限(当创建下级文件时,有同样的设置)

  setfacl -m d:u:user3:rwx web

(2)、删除acl权限

  setfacl -b web      #将web下所有后面添加权限删除

  setfacl -x u:user1 web         #只删除web 中user1的权限

(3)、查看acl权限

  getfacl web          #获取web文件的acl列表

 

acl怎样解决权限的继承问题

setfacl -m u:user1:rwx -R web #设置user1对web下所有文件具有rwx权限,但是对新建的目录或文件不起作用

setfacl -m d:u:user1:rwx -R web #设置user1对web下所有文件默认具有rwx权限,新建文件或目录同样起作用

[root@localhost /]# getfacl web

# file: web

# owner: root

# group: root

user::rwx

user:user1:rwx

group::r-x

mask::rwx

other::r-x

default:user::rwx

default:user:user1:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

 

[root@localhost /]# getfacl web4(web4为web下级目录)

# file: web4

# owner: root

# group: root

user::rwx

user:user1:rwx

group::r-x

mask::rwx

other::r-x

default:user::rwx

default:user:user1:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

 

 

 

 

 

 

服务进程

linux服务,进程,端口:

应用程序

/usr/sbin/httpd

服务脚本

/etc/rc.d/init.d/httpd

 

服务

chkconfig --list httpd         #查看httpd在不同级别启动情况

chkconfig httpd on       #设置httpd服务在2345级别下运行

chkconfig httpd off       #关闭httpd服务2345界别的运行

chkconfig --level 3 httpd on         #设置httpd服务3级别启动

service httpd start        #启动httpd应用程序

service httpd stop        #关闭httpd应用程序

service httpd restart     #重启httpd应用程序

 

如何将apche设置为开机自动运行

vi /etc/rc.local

加上/usr/local/apache2/bin/apchectl start

 

cd /etc/init.d

vi httpd

里面有一行#chkconfig: - 85 15 ,该行表示了httpd服务的启动级别为85(比较靠后,启动稍晚),关闭级别为15(比较靠前,关闭稍早)

 

进入/etc/rc3.d里面有许多的服务脚本,有S(开始)开头的,有K(停掉)开头的

 

进程

 

查看进程

ps -ef |gerp httpd             #进程表

pstree - p|grep test           #进程树

top                                 #类似win的任务管理器,能看到cpu、内存使用率,按q                                    键退出

free                                #查看计算机内存

 

./test.sh &                       #将程序后台执行

 

结束进程

kill -9 pid号

killall httpd(进程名)

pkill httpd(进程名)

 

端口

netstat -tunpl |grep :80          #查看80端口

netstat -tunpl |grep httpd        #查看httpd服务的端口

netstat -tun                          #查看当前活跃的连接

 

计算机端口:1-65535个

 

nc -l 20000                      #新建20000端口

nc localhost 20000            #连接20000端口

telnet 192.168.255.1 20000    #用telnet登陆192.168.255.1上的20000端口

 

 

 

 

 

 

 

文件系统

df -h 查看磁盘空间(带有换算单位功能)

df -Th 带文件格式的查看方法

 

stat filename          #查看filename的文件状态

查看内存:

1、free -k     或free -m(以m为单位打印)   或free -g

 

 

要点内容:

1、crontab 任务计划

2、硬盘分区、挂载

3、quota磁盘配额

 

 

crontab 任务计划

1、新建任务计划

crontab -e                   #edit

*****echo"aaaaaaaa" >>/tmp/file1

2、关于crontab语法:

时间             *代表每,5个*代表每分钟

执行命令        将执行程序写上全路径

3、时间

* * * * *共5个位置,依次为分、时、日、月、周

30 17 * * * 每天下午5:30

00 00 * * * 每天晚上00:00

00 00 * * 1-5 周一到周五的每天晚上00:00

* /5 * * * * 每隔5分钟

00 00 * * 1,3,5 周一、周三和周五的晚上00:00

 

4、命令

要将路径写全

如:在linux不写全路径时某些命令不能执行

/sbin/  或 /usr/sbin/     必须加全路径

/bin    或 /usr/bin        不用加全路径

*****echo"aaaaaaaa" >>/tmp/file1

 

5、查看任务计划

crontab -l          #list

6、删除任务计划

crontab -r          #remove

 

linux中的重定向(大于号前面一定要写空格):

>                     覆盖式的写入

>>                   追加

 

实时查看一个文件(规律变化的文件):

1、tail      默认查看文件后十行

tail -2  查看文件后2行

tail -f /tmp/file1  实时跟踪一个文件

#cd/var/log/httpd

#tail -faccess_log   #实时查看apache访问日志

2、head   默认查看文件前十行

head -2 查看文件前2行

 

watch -n1     #1秒钟刷新一次,实时跟综任何一个指令或文件,n后面为秒数

watch -n1 ps -ef |head -10 #每秒钟刷新进程前10

 

 

 

 

磁盘分区、格式化和挂载使用

先分扩展分区,然后进行逻辑分区

1、查看硬盘分区

fdisk -l              #list

2、对硬盘进行分区

一个硬盘只能有4个主分区,一个系统可以有多个。新加入的硬盘直接加入扩展分区

fdisk  /dev/sdb

 

m       帮助

n        新建分区(e扩展分区,p主分区,l逻辑分区,先分扩展分区才能出现逻辑分区

p        查看分区

w       保存现有分区结构

t        改变分区文件系统(默认 83--linux默认支持的ext3文件系统;8e--lvm 逻辑卷;fd--raid 磁盘阵列),在文件系统选择步骤选择83作为逻辑分区的文件系统

d        删除分区

 

extention

logical

primarypartition    

 

3、partprobe

分区完成后,输入此命令,让所有的软件都能知道这个新分区,并且知道文件系统

 

4、fdisk -l

 Device Boot    Start       End      Blocks      Id System

/dev/sdb1          1        1044    8385898+   5  Extended

/dev/sdb5          1        13        104359+   83 Linux

将要格式化的为逻辑分区sdb5

5、分区格式化

a、mkfs.ext3  /dev/sdb5

#把/dev/sdb5格式化成ext3文件系统

mount /dev/sdb5 /mnt       #将sdb5挂载到mnt目录

被挂载的目录最好应该为空,不然挂载前该目录中的文件在挂载后将消失

b、保障重启还能生效:

vi /etc/fstab

/dev/sdb5     /mnt   ext3 defaults   0   0

c、mount -a

加载/etc/fstab挂载表,没有挂载的会进行重新挂载,可以测试磁盘挂载语句(防止语句错误,无法启动系统)

d、df -T

#查看已挂载的分区(打印分区格式)

 

 

quota磁盘配额(只能对分区,配额是分区的属性)

做配额要看清给哪个分区做配额,只对指定分区有效

 

配额分类: 空间配额       blocks

文件数配额     inodes

 

1、给分区加磁盘配额属性

vi /etc/fstab(分区表)

修改/dev/VolGroup00/LogVo100    /    ext3   defaults,usrquota     1   1

2、分区属性生效的方法:

a、重启电脑或mount -o remount /      #把分区进行重挂载

3、首先准备用户

useradd   user1

4、扫描配额名单表

quotacheck  -cmug  /       #创建并扫描用户和组配额表放到根分区

5、对用户设置配额

每一种配额方式都有:软限制和硬限制

硬限制要大于软限制

edquota -u user1        

blocks已使用空间

inodes已使用文件数

soft    软限制

hard   硬限制

#Disk quotas for user user1 (uid 500):

# Filesystem                                               blocks       soft       hard    inodes     soft     hard

# /dev/mapper/VolGroup00-LogVol00         32          0          0         10        0       0

 

hard值一定要大于soft

f1、查看用户配额

quota           #用户自己查看配额

quota -u user1

g1、启动配额

quotaon -aug     #-a为所有的,-ug用户和组

h1、测试配额

du -sh test         #查看目录大小

ls test/ |wc -l      #查看目录下文件个数

i、文件配额

useradd  user2

quotacheck -cmufg /

edquota -u user2

quotaon -aug

j、注意事项:

一定要搞清楚设置配额的分区

k、新分区不支持acl属性

手动加上

vi /etc/fstab

/dev/sdb5  /mnt  ext3 defaults,acl  0  0  #将acl加入启动项

mount  -o  remount /dev/sdb5           #重新挂载/dev/sdb5

 

#查看分区挂载属性(rw,acl,usrquota,noexec)

 

对于5.4以前的系统:

useradd user2

quotaoff -aug                   #关闭配额

quotacheck -cmufg /

edquota -u user2

quotaon -aug

 

 

shell 编程

shell编程需要学习的语种:

shell语法

awk编程            #作用:截取坐标

例: df |awk 'NR==3{print int($4)}'截取df命令输出结果中第3行第4列内容

cat /etc/passwd |awk -F: '{print "username:”$1"=>uid:"$3}'

perl编程

python编程

 

 

/etc/bashrc        #系统中定义常量的文件,可以将命令别名定义在这里,这样每个用户都可以使用

 

history

存放位置:~/.bash_history

命令历史history

history查看命令历史

history -c清楚命令历史

 

alias

存放位置:~/.bashrc

 

alias [别名]                           #查看命令别名

alias 别名='实际执行的命令'       #设置命令别名

unalias 别名                          #取消已设置的命令别名

 

输入输出

echo 'aaa' >file1              #将aaa输入到file1

echo 'bbb'>> file1       #将bbb追加到file1中

ls > file1           

aaaaaa > file1

 

对于脚本中不想使用的输出,可以将其输出到黑洞设备内,如

pstree |grepmysqld &>/dev/null

 

小脚本(判断进程是否开启,如果未开启则重启进程)

pstree |grephttpd &>/dev/null

if [ &? -ne 0]

then

service mysqldrestart

fi

 

管道操作符号 |

 

$?测试上一条语句是否成功,0为--执行成功,非零--语句失败

 

#开头的行为注释行,

第一行#!/bin/bash标示所用解析器,

第二行写脚本名#test.sh

 

 

 

 

引号:

'    不解析变量

"    解析变量

`   将命令执行的结果输出给变量

 

脚本执行的时候必须加上可执行权限

chmod a+x ./test.sh

 

shell变量:

全局变量

echo $PATH

=>/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin       #以上:分隔的目录都为命令存放目录

echo $HISTSIZE

 

echo $PS1         #

PS1="==>"       #改变linux命令提示符

 

局部变量

位置变量

预定义变量

 

 

全局变量

PATH

HISTSIZE

PS1

PS2

 

局部变量

1、定义变量             //定义时没有$,输出时有$

str="helloworld!!"        #等号前后没空格

str='helloworld'

2、输出变量

echo $str

3、删除变量

unset str

4、查看变量

set

5、查看全局变量

env

6、把局部变量变成全局变量

export str

 

位置变量(一般是$0-$9,$0代表脚本本身)

#!/bin/bash

#test.sh

 

for loop in $1$2 $3 $4 $5       #此处为位置变量

do

echo $loop

sleep 1                                #休眠1秒

done

 

调用 ./test.sh a b c d e f

 

 

预定义变量

$?      判断上一次命令执行是否成功

$#      给脚本传递的参数个数

$*      传递了哪些参数

 

for loop in $*

do

echo $loop

sleep 1

done

 

for loop in $#

do

echo $loop

sleep 1

done

 

echo "参数个数:${#}"         #集合操作符写在$后面

for loop in $*

do

echo $loop

sleep 1

done

 

 

linux中数学运算

expr 1 + 1

expr 1 \* 1        #1X1

 

 

如何实现$i++

数学自增:

let i++

let i--

 

expr 1 + 1

expr 1 \* 1        #  *在linux代表模糊查询,需要转义

 

i=10

i=`expr $i + 1`       #$i自增1

 

str=`ls`

echo $str

 

键盘输入

read -p"please input yourname:" name

echo $name

运行脚本后,在屏幕上输入name,后面代码中可以直接调用$name

 

条件测试

1、文件测试(操作符前后有空格,文件路径前后有空格)

[ -d /etc ]&& echo "yes"        #测试文件是否是目录

[ -f /etc/passwd] && echo "yes"  #测试是否是文件

-e #测试目录或文件是否存在

-r  #测试当前用户是否有权限读取

-w #测试当前用户是否有权限写入

-x  #测试当前用户是否可执行该文件

-L  #测试是否为符号连接文件

2、整型测试(操作符前后有空格

-eq          等于         (Equal)

-ne          不等于      (Not Equal)

-gt      大于         (Greater Then)

-lt       小于         (Lesser Then)

-le      小于或等于 (Lesser or Equal)

-ge          大于或等于 (Greater or Equal)

3、字符串比较

[ 字符串1 = 字符串2 ]   #是否等于

[ 字符串1 != 字符串2 ]  #是否不等于

[ -z 字符串 ]                #字符串内容为空

4、逻辑测试

-a或&&:逻辑与

-o或||: 逻辑或

!:         逻辑否

 

 

if条件语句--单分支

 

if   条件测试命令

then

fi

 

if 磁盘已用空间>80%

then 报警

fi

 

#!/bin/bash

#if

read -p "username:" name

if[$name ]

 

 

 

 

 

awk

 

df |awk '$0~/mapper/{print $0}'       #第一行第一列

-F:      以:作为字符分隔符

NR      行数

NF      字段数

 

df |awk 'NR==3{print $4}'      #打印第三行第四列

df |awk 'NR==3{print int($4)}'     #打印出df的结果中第三行第四列并转整

 

$num=`df |awk 'NR==3{print int($4)}'`

 

if [ $num -ge 20 ]

then

echo "/分区超过20%,now is ${num}%"

fi

 

for((i=0;i<10;i++))

do

echo $i

done

 

循环添加100个用户

#!/bin/bash

 

for((i=1;i<=100;i++))

do

echo "startuseradd ...."

useradd"user${i}"

echo"-------------------"

echo "startpasswd ......"

echo 123456|passwd --stdin user$i &>/dev/null

done

echo "用户添加完毕,密码初始化为123456"

 

 

i=1;

while [ $i -le 100 ]

do

userdel -r user$i

let i++

done

 

 

case $1 in

start)

echo "start...."

;;

stop)

echo"stop...."

;;

restart)

echo"restart...."

;;

reload)

echo"reload...."

;;

*)                         #默认

echo"bbb"

;;

esac

 

 

function menu(){

echo"aaaaaaa"

}

menu

 

菜单实例

function menu(){

cat <<end

1) aaaaaaaaaaaaaa

2) bbbbbbbbbbbb

3) ccccccccccccccc

4) quit

end

}

 

while :

do

menu

read -p "please you input 1|2|3|4:" opts

case $opts in

1)

echo"aaaaaaaaaaaaaa"

;;

2)

echo"bbbbbbbbbb"

;;

3)

echo"cccccccccccc"

;;

4)

exit

;;

esac

done

 

shift    输入的参数列表第一个参数出栈

 

shell脚本应用示例

 

示例1:周五17:30清理FTP服务器的公共共享目录

    检查 /var/ftp/pub/ 目录,将其中所有子目录及文件的详细列表、当时的时间信息追加保存到 /var/log/pubdir.log 日志文件中,然后清空该目录

[root@localhost~]#vi/opt/ftpclean.sh

#!/bin/bash

date >>/var/log/pubdir.log

ls -lhR/var/ftp/pub >> /var/log/pubdir.log

rm -rf/var/ftp/pub/*

[root@localhost~]#crontab-e

30 17 * * 5/opt/ftpclean.sh

 

示例2:

每隔3天对数据库目录做一次完整备份

   统计/var/lib/mysql 目录占用的空间大小、查看当前的日期,并记录到临时文件 /tmp/dbinfo.txt 中,将 /tmp/dbinfo.txt 文件、/var/lib/mysql目录进行压缩归档,备份到/opt/dbbak/目录中,备份后的包文件名中要包含当天的日期信息, 最后删除临时文件/tmp/dbinfo.txt

[root@localhost~]# vi /opt/dbbak.sh

#!/bin/bash

DAY=`date +%Y%m%d`

SIZE=`du -sh/var/lib/mysql`

echo "Date:$DAY" >> /tmp/dbinfo.txt

echo "DataSize: $SIZE" >> /tmp/dbinfo.txt

cd /opt/dbbak

tar zcvfmysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt

rm -f/tmp/dbinfo.txt

 

[root@localhost~]# crontab -e

55 23 */3 * *  /opt/dbbak.sh

 

 

 

网络设置

Packet Tracer 5.0 by Cisco Systems(思科交换机模拟软件)

 

0.0.0.0代表所有ip地址

 

linux网络设置:

1)主机名修改

临时:hostname  server1

永久:vi/etc/sysconfig/network

HOSTNAME=server1

查看:hostname

2)修改ip地址

临时:ifconfig  eth0 192.168.200.1

永久:vi/etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.100.1

NETMASK=255.255.255.0

查看:ifconfig  eth0

查看所有接口:ifconfig  -a

 

3)网关

临时:route  add default  gw 192.168.100.1            #gw  gateway

永久:vi  /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=192.168.100.100

查看:route -n

4) 服务器

永久:vi /etc/resolv.conf

nameserver  8.8.8.8

 

 

网络OSI七层模型:

七层 应用层

六层 表示层   

五层 会话层   

四层 传输层     源端口-目的端口

三层 网络层     源ip-目的ip   (地址和名字)  ->发送一个arp广播(arp病毒)

二层 数据链路层  源mac-目的mac  (身份证号码)

一层 物理层    

 

 

 

nfs文件共享

nfs服务器:

实验环境:linux > linux

 

server设置过程:

1、安装软件

yum -y install nfs*

 

2、修改配置文件

vi /etc/exports

 

/share *(sync,rw)    //*代表所有的人,可以用ip地址段表示

 

/share *|192.168.100.0/24(sync,rw|ro)                 #sync磁盘同步

# *代表所有ip地址,24代表子网掩码255.255.255.0

#ro    只读

 

3、启动服务

service nfs restart

 

服务随机启动:

chkconfig nfs  on

#2,3,4,5级别下启动

 

在客户端测试连接前关闭服务器的防火墙:

iptables

查看:iptables  -L

删除:iptables  -F

service  iptables save

 

selinux

查看:sestatus

禁用:vi /etc/selinux/config

SELINUX=disabled

 

分配权限(系统权限),让客户端nfsnobody用户能够创建文件

setfacl -m d:u:nfsnobody:rwx -R share/

 

客户机重启后还能挂载:

vi /etc/fstab

192.168.100.1:/share /mnt nfs defaults 0 0#测试umount /mnt mount -a  df

 

client:

查看nfs文件夹

showmount -e 192.168.100.1

 

挂载服务器共享文件夹

mount 192.168.100.1:/share  /mnt

 

 

 

 

smb文件共享

在win下开发linux上挂的网站需要用到该技术

 

samba文件共享:

1、安装软件

yum -y installsamba*

在CnetOS5.5版本中输入--skip-broken         #跳过无法解决依赖性包的安装

2、修改配置文件

rpm安装的apache网站根目录:

/var/www/html

 

#找到以home开头的行,复制,粘贴为web

vi/etc/samba/smb.conf

[web]                              #共享名

path=/var/www/html         #共享路径

browseable=yes               #可浏览

writable=yes                    #可写

 

3、创建samba用户(特殊,系统里面必须有个跟samba同名的用户,而且此用户无密码)

useradd  user1

smbpasswd  -a user1      //输入两次密码  #将用户user1加入samba用户

 

权限设置

chmod o+w html/        #不精准的方法

setfacl -md:u:user1:rwx -R html/     #acl方法

 

service smbstart         启动服务

win下开发linux网站的配置

要注意:设置samba用户为apache,httpd服务用户也为apache

win在linux下开发需要将user1改为apache

smbpasswd  -a apache

setfacl -mu:apache:rwx -R /var/www/html/

setfacl -md:u:apache:rwx -R /var/www/html/

 

win下删除远程登录用户(win下存储用户缓存的方式,导致用户缓存很难清除,需要用一下方法)

net use /delete *

 

使用mkdir创建文件时,要注意权限参数没有双引号(brophp框架创建文件命令有问题)

 

4、启动服务

service  smb restart

 

 

 

 

client:

linux ->

mount //192.168.100.1/web  /mnt  -o username=user1    #-o option选项

 

 

windows ->

1、\\192.168.100.1\web

2、映射网络驱动器(\\192.168.100.1\web => z:)

 

ftp文件服务器

ftp服务器主要用来软件发布使用

server:

1、安装软件

yum -y  install  vsftpd*

 

2、修改配置文件

vi /etc/vsftpd/vsftpd.conf

anon_upload_enable=yes            #使匿名用户可以上传

anon_mkdir_write_enable=yes         #使匿名用户创建文件夹

anon_other_write_enable=yes     #使匿名用户具有修改删除权限

 

3、启动服务

service vsftpd restart

chkconfig vsftpd  on       //下次重启系统,服务随机启动

 

ftp根目录:

/var/ftp/pub/

设置权限chmod o+w pub/       #默认服务用户为ftp

setfacl

 

查进程:

pstree |grep  vsftpd

 

client:

ie -- ftp://192.168.100.1

 

dos -- ftp 192.168.100.1

匿名用户:ftp

密码:空

 

可以使用linux内的普通用户在win的ftp端登陆,上传文件至用户家目录,如:/home/user1

 

匿名用户上传:

修改配置文件 vi /etc/vsftpd/vsftpd.conf

去掉anon_upload_enable=YES的注释

匿名用户创建文件夹:anon_mkdir_write_enable=yes

匿名用户修改文件名:anon_other_write_enable=yes

 

 

 

 

ssh文件传输

linux的ssh两大功能:

1、远程登录

ssh192.168.100.1

2、远程传输

a、scp file1192.168.100.1:/root/           #拷贝file1至远程服务器

b、rsync -a -essh file1 192.168.100.1:/root/

rsync本身是一种远程传输技术,只是让其沿着ssh安全隧道传输

 

不要口令登录或远程传输:

1、客户端生成一对钥匙

ssh-keygen -t rsa    然后连续回车

/root/.ssh/id_rsa #私钥

/root/.ssh/id_rsa.pub#公钥

2、把自己的公钥传到服务器的相应目录下/root/.ssh/authorized_keys

ssh-copy-id  -i /root/.ssh/id_rsa.pub 192.168.100.1

3、ssh 192.168.100.1        #此时不再要口令了

 

两种远程传输方式:

1、ssh file1192.168.100.1:/root/  将file1拷贝到192.168.100.1的/root/下

2、rsync -a -essh file1 192.168.100.1:/root/

 

 

ssh验证方法:

1、口令验证

2、密钥验证

 

密码学:

1、对称加密

2、非对称加密

3、单向不可逆加密 md5

 

非对称加密(原理:一把钥匙--私钥配多把锁--公钥):

1、网银

2、安全的网站

 

1、服务器把公钥交给用户,用户到服务器的数据是通过这把锁加密的

2、用户把自己的锁交给服务器,让服务器拿用户的锁加密数据然后传输,用户使用自己的私钥去解开

crontabssh配合备份网站文件

crontab -e

00 02 * * * tarczf /tmp/html.tar.gz  /var/www/html   #压缩

30 02 * * * rsync-a -e ssh /tmp/html.tar.gz 192.168.100.1:/tmp          #传输

 

dns域名服务器

作用:把域名转成ip地址

 

三大类dns服务器:缓存dns服务器;主dns服务器;从dns服务器

 

1、dns查询方式

2、缓存dns服务器

3、主dns服务器

4、从dns服务器

 

域名的结构(标准的域名后面有一个.):

www.baidu.com/a/b/c/index.php

www.baidu.com.:80     

www.baidu.com.      #主机名

baidu.com     .             #域名

 

. 13台dns根域

 

 

 

缓存dns服务器:

通过向其他域名服务器查询获得域名->IP地址记录将域名查询结果缓存到本地,提高重复查询时的速度

 

 

server:

1、安装软件

yum  -y install  bind*               #安装主服务器需要的软件

2、修改配置文件

配置文件和解析数据库:

/var/named/chroot/

etc          #配置文件

var              #解析数据文件

 

设置缓存dns服务器

yum  -y install  caching-nameserver*

 

配置文件和解析文件如何配合:

named.caching-nameserver.conf       #访问控制文件

named.rfc1912.zones                      #dns配置文件

 

 

3、启动服务

 

需求:假设一台dns服务器,解析baidu.com,这个域下有几个域名:

1、www.baidu.com

2、mp3.baidu.com

3、ftp.baidu.com

 

1、安装软件

yum -y installbind* caching*

2、修改访问控制文件

vi/var/named/chroot/etc/named.caching-nameserver.conf

1)localhost=>any

2)127.0.0.1=>any

3、修改配置文件

正向解析-baidu.z

反响解析-baidu.f

4、创建baidu.z和baidu.f

cd/var/named/chroot/var/var/named

 

设置缓存dns服务器

yum -y installcaching-nameserver*

 

配置文件和解析文件:

named.caching-nameserver.conf  //访问控制文件

named.rfc1912.zones   //dns配置文件

 

需求:架设一台dns服务器,解析baidu.com,这个域名下有一下域名:

1、www.baidu.com

2、mp3.baidu.com

3、ftp.baidu.com

 

主dns服务器步骤

1、安装软件

yum -y install bind* caching*

2、修改访问控制文件

vi/var/named/chroot/etc/named.caching-nameserver.conf

将localhost全部替换为any,将127.0.0.1全部替换为any

3、修改配置文件

//正向解析-baidu.z

zone"baidu.com" IN {

        type master;

        file "baidu.z";

        allow-update { none; };

};

//反向解析-baidu.f

zone"100.168.192.in-addr.arpa" IN {

        type master;

        file "baidu.f";

        allow-update { none; };

};

 

4、创建baidu.z和baidu.f

寻找合适的配置文件做为模版named.local(var/named/chroot/var/named/)

cp named.localbaidu.z

vi baidu.z

:%s/localhost/baidu.com/g

 

//baidu.z内容

$TTL    86400

@       IN     SOA     baidu.com.root.baidu.com.  (

                                     1997022700 ; Serial

                                      28800     ; Refresh

                                     14400      ; Retry

                                     3600000    ; Expire

                                      86400)    ; Minimum

        IN     NS      ns1.baidu.com.

        IN     NS      ns2.baidu.com.           //从dns设置

 

ns1     IN      A      192.168.100.1

ns2     IN      A      192.168.100.2            //从dns设置

www     IN     A       192.168.100.1

mp3     IN      A      192.168.100.2

 

//baidu.f内容

$TTL    86400

@       IN     SOA     baidu.com.root.baidu.com.  (

                                     1997022700 ; Serial

                                     28800      ; Refresh

                                     14400      ; Retry

                                     3600000    ; Expire

                                      86400 )    ; Minimum

        IN     NS      ns1.baidu.com.

        IN     NS      ns2.baidu.com.      //从dns设置

 

1       IN      PTR     ns1.baidu.com.

1       IN      PTR     ns2.baidu.com.      //从dns设置

1       IN      PTR     www.baidu.com.

2       IN      PTR     mp3.baidu.com.

 

 

5、重启服务

service named restart

 

6、测试

 

出现错误,查看日志信息tail/var/log/message

错误原因,是/var/named/chroot/var/named/baidu.z 和baidu.f的权限有问题

解析文件的权限配置:

chown :namedbaidu.*

 

pingwww.baidu.com

 

7、再次重启服务

service named restart

 

 

 

 

dns解析记录类型:

1)IN  internet

2)A   从域名到ip

3)NS 本域里面负责域名解析的dns服务器

4)PTR     从ip到域名的解析记录(反向解析时才能看到)

5)SOA    权威解析记录(负责一个域内的最权威的那台主dns服务器)

 

 

 

从dns服务器

1、安装软件:

yum -y install bind* caching*
2、修改访问控制文件

vi /var/named/chroot/etc/named.caching-nameserver.conf

将localhost全部替换为any,将127.0.0.1全部替换为any

3、修改配置文件

vi /var/named/chroot/etc/named.caching-nameserver.conf

//正向解析-baidu.z

zone"baidu.com" IN {

        type slave;

        file "slaves/baidu.z";

        masters { 192.168.100.1; };

};

//反向解析-baidu.f

zone"100.168.192.in-addr.arpa" IN {

        type slave;

        file "slaves/baidu.f";

        masters { 192.168.100.1; };

};

 

修改主服务器的baidu.z和baidu.f,增加上从服务器的ip

 

4、从主服务器复制得到baidu.z和baidu.f

查看从服务器的/var/named/chroot/var/named/slaves,同步成功后会出现baidu.z和baidu.f

 

5、测试

ping www.baidu.com

ping -a 192.168.100.1

host 192.168.100.1

host 192.168.100.2

 

主从同步的测试

1、主服务器解析文件:

1997022701:serial   //一定要比从服务器大才行

2、重启主服务器从跟着同步

service named restart

3、设置windows网卡的首先和备用dns服务器

4、设置主从dns服务器-ping和nslookup

 

主从服务器无法同步的解决办法

主DNS需要在辅助DNS的chroot文件夹中有写权限。然后在辅助DNS上重启named服务,主DNS会把相应的ZONE文件直接传递到辅助DNS上

在从服务器上输入chown =R named.named chroot/

 

 

 

 

 

 

 

lamp环境编译

准备工作

1、编译之前防火墙要关闭

关闭SELinux,允许防火墙80端口访问

sestatus   (linux防火墙)

vi/etc/selinux/config

SELINUX=disabled *若安装时没有禁用SELinux,将enforcing改为disabled

修改后需重新启动Linux方可生效

 

关闭防火墙Netfilter/iptables

iptables -F     *如果没有禁用防火墙,默认80端口禁止访问

service iptablessave     防火墙策略写到/etc/sysconfig/iptables,以后计算机重启再加载这个文                                                    件时,防火墙策略就会永久清空.

 

 

2、环境里一定要有gcc

编辑yum配置文件

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak   #将该文件设为备份

vi /etc/yum.repos.d/CentOS-Media.repo

准备光盘挂载

mount /dev/hdc/media

依次安装gcc、gcc-c++

yum -y installgcc*

3、卸载系统之前有的Apache、MySQL和PHP的RPM,或是将原有的服务停止

service httpdstop

service mysqldstop

卸载RPM包的Apache、MySQL、PHP

rpm–e http-1.2.3.rpm --nodeps          #截断这个rpm包的依赖性

yum remove httpd

yum remove mysql

 

 

编译安装

*每个源码包配置编译安装完成后,确认安装目录是否生成安装文件

 

./configure后面不指定prifix和其他一些属性时,默认是安装在系统路径,在/usr/local/bin下能找到该软件的bin,当其他软件安装过程中需要用到该软件,若没指定寻找路径,就会到/usr/local/bin/去调用

 

准备语句

tar xzf file.tar.gz      #解开gz压缩文件

tar xjf file.tar.bz2         #解开bz2压缩文件

 

源码包放在/lamp下    mkdir /lamp

编译以后的文件放在/usr/local

 

安装libxml2(php编译时需要使用)

cd/lamp/libxml2-2.6.30

./configure--prefix=/usr/local/libxml2/

make  && make install         //make成功后再执行make install

 

安装libmcrypt     (加密,认证)

cd/lamp/libmcrypt-2.5.8

./configure--prefix=/usr/local/libmcrypt/

make &&make install

*需要调用gcc-c++编译器,未安装会报错

 

安装libltbl,也在libmcrypt源码目录中,非新软件

 cd/lamp/libmcrypt-2.5.8/libltdl

 ./configure --enable-ltdl-install

 make

 makeinstall

 

 

 

 

 

安装zlib

cd /lamp/zlib-1.2.3

./configure                  #未指定安装目录,安装到系统指定目录/usr/local下的对                                  应目录,如bin将进入系统的bin,lib将进入系统的lib,这                                     种情况的配置文件,当软件安装完成后,会自动加入系统的                                 环境变量,可以直接调用

make &&make install

 

安装libpng

cd /lamp/libpng-1.2.31

./configure--prefix=/usr/local/libpng/

make &&make install

 

64为系统提示错误/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32against `a local symbol' can not be used when

解决方法重新安装zlib

cd zlib-1.2.3

./configure

vim Makefile 找到CFLAGS=-O3 –DUSE_MMAP加上-fPIC

 

安装jpeg6

mkdir /usr/local/jpeg6

mkdir /usr/local/jpeg6/bin

mkdir /usr/local/jpeg6/lib

mkdir /usr/local/jpeg6/include

mkdir -p /usr/local/jpeg6/man/man1

cd /lamp/jpeg-6b

./configure --prefix=/usr/local/jpeg6--enable-shared --enable-static

make && make install

*--enable-shared与--enable-static参数分别为建立共享库和静态库使用的libtool

 

 

64位系统出错

./libtool–mode=compile gcc -O2 -I. -c ./jcapimin.c

make:./libtool: Command not found
make: *** [jcapimin.lo] Error 127

 

需要更新libtool到最新版本

#cp/usr/share/libtool/config/config.sub .
#cp /usr/share/libtool/config/config.guess .

 

 

安装freetype

 cd/lamp/freetype-2.3.5

 ./configure --prefix=/usr/local/freetype/

 make

 makeinstall

 

安装autoconf

cd /lamp/autoconf-2.6.1

./configure

make && make install

 

 

安装gd库

mkdir /usr/local/gd2

 cd/lamp/gd-2.0.35

#png错误,修改方法:

vi gd_png.c

把#include “png.h”替换

#include "/usr/local/libpng/include/png.h"

#如果不做修改,phpinfo()显示出的png的支持为disable

./configure --prefix=/usr/local/gd2/--with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/--with-png=/usr/local/libpng/

#word中两行以上的命令,要在记事本中消除换行格式才能粘贴到linux命令行

 

 Make

#如果出现错误,把上面的两步重新执行一次.

 makeinstall

 * 若前面配置zlib时没有指定安装目录,gd配置时不要添加--with-zlib=/usr/local/zlib/参数

php5以上需要2.1以上版本的gd库

 

安装apache

cd /lamp/httpd-2.2.9

./configure--prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/--with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared--enable-rewrite=shared

 

 make

 make install

 

启动Apache测试:

/usr/local/apache2/bin/apachectl restart

查看进程:

ps -le | grep httpd

 

查看apache模块:

/usr/local/apache2/bin/apachectl –l

#share  动态模块或动态库文件

Php5 rewrite

#static  静态模块或表态库文件

Server-status

Userdir

Virtual host

 测试:

 http://192.168.100.1/index.html

 

 “itworks”

 

设置Apache随机启动

 Vi /etc/rc.local

 /usr/local/apache2/bin/apachectl restart

 

 

 

安装ncurses

使用1方法或2方法均可

1.yum –y install ncurses*

2.源代码编译:

cd /lamp/ncurses-5.6

./configure --with-shared --without-debug--without-ada --enable-overwrite

make

make install

* 若不安装ncurses编译MySQL时会报错

* --without-ada参数为设定不编译为ada绑定,因进入chroot环境不能使用ada --enable-overwrite参数为定义把头文件安装到/tools/include下而不是/tools/include/ncurses目录

重点是将ncurses-devel安装上去,在系统安装时选中开发工具,则ncurses-5.5-24.20060715是安装好的,缺少一个ncurses-devel.i386包

 

 

 

安装MySQL

 useradd mysql

* 添加用户组mysql ,将mysql用户默认组设置为mysql用户组

cd /lamp/mysql-5.1.59

./configure --prefix=/usr/local/mysql--without-debug --enable-thread-safe-client --with-pthread --enable-assembler--enable-profiling --with-mysqld-ldflags=-all-static--with-client-ldflags=-all-static --with-client-ldflags=-ltinfo--with-extra-charsets=all --with-plugins=all --with-mysqld-user=mysql--without-embedded-server --with-server-suffix=-community--with-unix-socket-path=/tmp/mysql.sock

 make

 makeinstall

 * --with-extra-charsets=all参数为安装所有字符集

#如果不行的话,make clean 后再make ;make install,这样去试一下,默认是不支持innodb存储引擎的.其中--with-plugins=all可以把innodb加载进来.

 

 

拷贝配置文件模板

1.cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

 

修改MySQL配置文件

1.[client]

default-character-set=utf8

#客户端字符集

#连接字符集

 

2.[ mysqld]

character-set-server = utf8

#服务器字符集

#数据库字符集

 

collation-server = utf8_general_ci

#服务器,库,表的校验字符集

#default-storage-engine=innodb       #看情况决定是否更改此处

#把默认的表引擎改为innodb

* 生成MySQL配置文件

 

重启服务

杀进程 pkill mysqld

启动    /usr/local/mysql/bin/mysqld_safe--user=mysql &

 

 Setfacl –m u:mysql:rwx–R /usr/local/mysql

 Setfacl –m d:u:mysql:rwx –R /usr/local/mysql

 

 安装数据库* acl来让mysql用户对/usr/local/mysql有所有权限

/usr/local/mysql/bin/mysql_install_db--user=mysql

 * 创建数据库授权表

启动MySQL服务

1.用原本源代码的方式去使用和启动mysql

/usr/local/mysql/bin/mysqld_safe--user=mysql &

2.重启以后还要生效:

Vi /etc/rc.local

/usr/local/mysql/bin/mysqld_safe--user=mysql &

4./usr/local/mysql/bin/mysqladmin-uroot password kkk 

#给mysql用户root加密码.密码为kkk

 /usr/local/mysql/bin/mysql -u root -pkkk test

mysql>show databases;

mysql>use test

mysql>show tables;

#进入mysql以后用set来改密码.

 mysql> exit

登录MySQL客户端控制台设置指定root密码

 

 

 

安装libiconv

./configure--prefix=/usr/local/libiconv

 

安装php

编译前确保系统已经安装了libtool和libtool-ltdl软件包,若没有安装使用yum或rpm安装下:

yum install libtool*

yum install libtool-ltdl*

 

 cd/lamp/php-5.2.6

./configure--prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/--with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/--with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/--with-gd=/usr/local/gd2/ --with-iconv=/usr/local/libiconv --with-mcrypt=/usr/local/libmcrypt/--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap--enable-mbstring=all --enable-sockets

* 若前面配置zlib时没有指定安装目录,PHP配置时不要添加--with-zlib-dir=/usr/local/zlib/参数

若在gd部分一直编译不过去,可以尝试yum install php-gd,然后--with-gd的时候省略掉路径

make

 make install

------------php5.5安装配置

 

./configure --prefix=/usr/local/php/--with-config-file-path=/usr/local/php/etc/--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/--with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/--with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/--with-mcrypt=/usr/local/libmcrypt/--with-mysqli=/usr/local/mysql/bin/mysql_config --with-xpm-dir=/usr/lib64 --with-iconv=/usr/local/libiconv --with-zlib --with-bz2--enable-zip --enable-soap --enable-mbstring=all --enable-sockets

php5.6.30安装配置

’./configure' \

'--prefix=/usr/local/php/' \

'--with-config-file-path=/usr/local/php/etc/'\

'--with-apxs2=/usr/local/apache2/bin/apxs'\

'--with-mysql=/usr/local/mysql/' \

'--with-libxml-dir=/usr/local/libxml2/' \

'--with-jpeg-dir=/usr/local/jpeg6/' \

'--with-png-dir=/usr/local/libpng/' \

'--with-freetype-dir=/usr/local/freetype/'\

'--with-gd=/usr/local/gd2/' \

'--with-mcrypt=/usr/local/libmcrypt/' \

'--with-mysqli=/usr/local/mysql/bin/mysql_config'\

'--with-xpm-dir=/usr/lib64' \

'--with-iconv=/usr/local/libiconv' \

'--with-zlib' \

'--with-bz2' \

'--enable-zip' \

'--enable-soap' \

'--enable-mbstring=all' \

'--enable-sockets' \

’--enable-opcache’ \

 

生成php.ini(php的配置文件)

cp /lamp/php-5.2.6/php.ini-dist /usr/local/php/etc/php.ini

测试apachephp的连通性,apache是否能解析php文件

 

让apache支持php代码 :

vi/usr/local/apache2/etc/httpd.conf

AddTypeapplication/x-httpd-php .php .phps

DirectoryIndex index.html index.php   添加PHP默认主页类型

重启Apache服务:

/usr/local/apache2/bin/apachectl  restart

 

测试:vi /usr/local/apache2/htdocs/test.php

      <?php

              phpinfo();

 ?>

通过浏览器测试:

http://192.168.255.1/test.php

 

编译安装memcache模块

tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5

/usr/local/php/bin/phpize        //专为php添加模块使用

./configure--with-php-config=/usr/local/php/bin/php-config

make && make install

编译安装 PDO_MYSQL

tar zxvf /lamp/PDO_MYSQL-1.0.2.tgz

cd /lamp/PDO_MYSQL-1.0.2/

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr/local/mysql

make && make install

如果出现找不到mysql.c的错误,ln -s/usr/local/mysql/include/mysql/* /usr/local/include/

 

修改php.ini

设置模块的目录:

extension_dir ="/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"

extension=memcache.so;

extension=pdo_mysql.so;

 

修改php文件生效:

/usr/local/apache2/bin/apachectl restart

 

#安装Zend加速器

cd /lamp/ZendOptimizer-3.2.6-linux-glibc21-i386

./install.sh

 

#安装memcache源代码

http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz

首先安装依赖包libevent

Yum –y install libevent*

#主包已经安装,别忘记安装libevent-devel*,不然./configure过不去

Tar xzf /lamp/memcached-1.4.10.tar.gz

Cd /lamp/memcached-1.4.10

./configure --prefix=/usr/local/memcache

Make && make install

Useradd memcache

#因为系统不能用root运行memcache软件

/usr/local/memcache/bin/memcached -umemcache&     #后台运行

Netstat –tunpl|grep :11211

telnet 192.168.10.1 11211

stats

写入自启动:

Vi /etc/rc.local

/usr/local/memcache/bin/memcached –umemcache&

#如何杀掉后台进程,用kill%1,查看进程用jobs

#安装brocms源码

主要是为了测试lamp环境编译是否成功,主要测试以下几个地方:

1.      pdo

2.      pdo-mysql

3.      memcache

#要注意memcache,因为它有两个源代码包,一个是php驱动库包(memcache-2.2.5.tgz),另一个是memcache主程序源代码包(memcached-1.4.10.tar.gz);

 

Apache服务器配置

 

apache基本知识

/usr/local/apache2/                #apache主目录

/usr/local/apache2/htdocs       #网站根目录

/usr/local/apache2/bin/httpd   #执行程序

/usr/local/apache2/bin/apachectl       #服务脚本

/usr/local/apache2/logs/access_log    #访问日志

/usr/local/apache2/logs/error_log      #错误日志

/usr/local/apache2/etc/httpd.conf      #主配置文件

/usr/local/apache2/etc/extra/           #模板配置文件

index.html                                     #默认首页

 

apache配置文件

ServerRoot   "/usr/local/apache2"     #apache的主目录

Listen  80                                       #在所有接口上监听80端口

LoadModulephp5_module                #动态加载php5模块或库文件

User daemon                   #httpd进程的执行者,httpd进程创建文件的所有者

=>ps -ef |grep httpd

Group daemon                               #httpd进程创建的文件的所属组

ServerAdmin you@example.com       #管理员邮箱

ServerName www.example.con:80         #apache主机名

192.168.100.1:80

DocumentRoot   "usr/local/apache2//htdocs"    #网站根目录

 

#apache的目录权限

<Directory/>

 

<Directory>

#apache控制系统中/目录权限,拒绝所有人访问的,权限是服务权限

 

<Directory"/usr/local/apache2//htdocs">

Options Indexes FollowSymLinks

AllowOverride None

Order deny,allow             

#Deny from all            #可以设置先拒绝后允许,标准配置方法

Allow from all

<Directory>

网站根目录的权限控制

 

Errorlog"log/error_log"      #错误日志

Customlog"logs/access_log" common         #访问日志所在的地方

 

AddTypeapplication/x-httpd-php .php         

#支持php脚本,而且能够调用LoadMoudle中的php模块去解析php脚本

ErrorDocument404 /missing.html      #当页面不存在时显示这个文件

 

apache个人主页

vi/usr/local/apache2/etc/httd.conf

UserDirpublic_html

<Directory

 

useradd user1                  #准备user1用户

 

su - user1

mkdirpublic_html

echo user1>public_html/index.html

httpd://192.168.100.1/~user1          #测试

 

#注意系统权限

setfacl -mu:apache:rwx -R /home

setfacl -md:u:apache:rwx -R /home

 

 

apache虚拟目录

作用:

空间扩展

vi /usr/local/apache2/etc/httpd.conf

 

apache目录访问控制(针对目录的访问控制)

1.options

indexes                 

#开启网站列表页。文件下载效果,做测试时使用,网站上线时要将其关闭。

multiviews

#多视图,试探性的填补后缀,有安全问题:当web目录下有个web.html,如果直接 输入web,将直接打开web.html,那么web目录就无法进入

followsymlinks

#能够看到快捷方式

2.allowoverride       #用户授权和重写规则

all               

#/web/uploads中去找一个文件.htaccess文件,这个文件中一般写:用户授权和重写规则

none

3.order

order allow,deny     #先允许后拒绝,后面的权限优先

4.allow

allow from all          #允许所有

5.deny

deny from all          #拒绝所有

 

apache用户授权

1.vi .htaccess     #创建.htaccess用户授权文件

 

2.生成密码文件.htpasswd

 

3.重启apache并测试

 

apache虚拟主机

#一台服务器上可以放多个网站--每个网站都有一个域名

技术背景:

1.同一台服务器,不同的ip,相同端口

2.相同ip,不同端口

3.相同ip,相同端口,不同域名(需要apache的支持)

 

apache重写功能-rewrite

目的: 1、搜索引擎收录

2、网站升级时,做页面跳转

http://localhost/index.php?id=1    #收录效果不好

http://localhost/index_1.html       #收录效果好

http://localhost/index/id/1

http://localhost/index_2.html

 

配置

1、vi /usr/local/apache2/etc/httpd.conf

 

做重写功能时,在配置文件中网站设置的options中加入followsymlinks,关掉multiviews可以解决权限问题

2、vi /baidu/.htaccess            #将.htaccess写在网站根目录

 

apache监控功能->server-status

 

SetHandlerserver-status

 

apache cgi网关程序(shell脚本|python脚本|shtml技术)

 

shtml技术是在linux的.s文件中嵌套html语句或cgi脚本

 

1.放网页:

cd/usr/local/apache2/cgi-bin/

vi index.cgi

 


iptables防火墙

1. 防火墙过滤(osi七层模型)

 

 

在iptables服务器两块网卡的OSI模型中5一条链的应用位置

nat->network address translation

2. snat技术   基于源地址的地址转换技术

3. pat技术    基于端口的地址转换技术(可以绑定拨号服务器的网卡端口,省去修改规则的麻烦)

4. dnat技术--路由器上做端口转换

 

源端口

1024-65535之间的端口

一台电脑端口1-65535个端口

 

标准端口:1-1024

非标端口:1024-65535

 

私有网段

 

iptables:

1.  表

2.  链           与链有关的全部大写

3.  规则

4.动作         与动作有关的全部大写

 

三个表

     Filter:用于设置包过滤      input、output、forward链放入此表

     NAT:用于设置地址转换   prerouting、postrouting、output链放入此表

     Mangle:用于设置网络流量整形等应用    5个链都可以在

 

链:

1.  input                 来访问防火墙服务器本身

2.  output          从防火墙发出去的数据

3.  forward             穿过防火墙去其他地方

沿防火墙服务器路由管道访问外网,从内到外,从外到内,都要过forward

当需要让一台linux服务器做路由器时,需要打开其路由管道:

echo1 > /proc/sys/net/ipv4/ip_forward  (/proc下的文件是计算机临时配置,重启就丢失)

4.  prerouting     =>dnat =>把目的公用ip转成公司内部私有ip

数据包准备进来,从2层到3层之间,准备进入路由层之前时

5.  postrouting   =>snat =>把私有ip改成公司拨号的公用ip

数据包准备出去,从3层到2层之间,刚刚越过路由层时

 

 

防火墙环境配置

配置ip

xp 192.168.100.254(vm1)

iptables    左侧192.168.100 .1(vm1)   右侧200.168.100.1(vm2)

web server    200.168.100.254(vm2)

测试是否通路

先iptables机器ping两侧机器

内部xp与外部的web之间本身是通不了的

1、添加xp网关192.168.100.1

2、添加web的网关route add default gw200.168.100.1

3、打开iptables的路由通路

echo 1 >/proc/sys/net/ipv4/ip_forward   #可以写入启动项/etc/rc.local

 

需求1:

不让xp通过防火墙去访问外部的web的web页面(只是阻止对80端口的访问)

iptables -t(表) filter -A(追加) FORWARD -s(源) 192.168.100.254 -d(目的)200.168.100.254 -p tcp --dport(所阻止的目的端口) 80 -jDROP(丢弃)

 

需求2:

iptables可以ping通web,但是web不能ping通iptables

iptables -t filter -A INPUT -s200.168.100.254 -p icmp --icmp-type echo-request -j DROP

 

需求3:

通过防火墙机器让公司内部的xp可以去外部上网

iptables -t nat -A POSTROUTING -s192.168.100.0/24 -o eth1 -j SNAT --to 200.168.100.1

 

需求4:

保障每天公司内部的员工都可以上网,不用每天去加一条snat(将ip绑定到端口上,和端口的ip保持一致)

iptables -t nat -A POSTROUTING -s192.168.100.0/24 -o eth1 -j MASQUERADE

 

需求5:

让公司外部的人可以访问公司内部的私有web服务器

(xp 去掉网关,web 加上网关,左侧为外部上网用户,右侧为内部web服务器)

iptables -t nat -A PREROUTING -d 200.168.100.1(左侧链接外网网卡ip) -j DNAT --to 192.168.100.254(内部服务器ip)

 

 

 

语法:iptables 表链 规则 动作       #与链和动作有关的全部大写,其他小写

表:

-t   filter|nat|mangle     不写表的话就默认对多有表的链进行操作

 

链:

-L           查看链内的规则     --line-numbers -n

--line-numbers   显示编号

-n                     总是显示destination的ip地址

-F           清除链内的规则

-X           删除自定义链

-A           在链的最后追加一条规则

-I            在链的最前面插入一条规则

iptables -I INPUT 3 -s 192.168.100.254 -j DROP

-E           改变链名

-D           删除链内的规则(可以定向删除某条)

iptables -D INPUT 3

-R           替换链内规则

iptables -R INPUT 3 -s 192.168.100.250 -j DROP

-P           修改policy ACCEPT,链的默认动作

 

规则:

-s            源ip

-d           目的ip

-p           tcp  --sport|--dport 源端口|目的端口

-p           icmp  --icmp-type echo-request|echo-reply ping请求(8)和回应(0)

-i            进入的网卡

-o           出去的网卡

 

动作:

-j

DROP           丢弃

ACCEPT        默认是接受

REJECT         拒绝

SNAT            源IP地址转换技术

DNAT           目的IP地址转换结束

MASQUERADE    内部ip端绑定网卡使用(pat技术)

REDIRECT     重定向

 

保证防火墙服务器重启后策略还在

service iptables save         #将防火墙策略加入系统启动项

 


 

 

 

零散知识点

 

strings     读取二进制文件头,如strings  /bin/cp

ls -lR       #递归的查看目录中的文件

 

如何验证/etc/rc.local是否配置正确?

source/etc/rc.local      #测试启动加载文件配置是否正确 /etc/rc.local

 

apache是进程管理还是线程管理?

apache是进程管理,apache以后的方向是进程带线程管理

 

线程管理:并发性好,不稳定,分配内存快,回收内存慢

进程管理:进程之间不相关,一个进程挂掉,其他进程不受其影响,进程数量可以自己 调,回收内存快,稳定性好

 

面试注意:403(权限)、304等错误‘

 

主机厂商常见的技术:

虚拟主机,vps,vmware的esx

 

如何重启服务(mysql为例)

1、杀掉进程

pkill  mysqld

2、启动

./mysqld_safe--use=mysql &      #&符号指的是后台运行

 

 

 

source /etc/rc.local      //模拟启动过程,检测其中的设置是否能正常启动

 

pkill mysqld                 //关闭进程

 

netstat -tunpl |grep :3306  //查看端口

 

 

平滑重启kill -HUP pid

如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。

 

 

mysql

远程连接MySql数据库时:

ERROR 1045(28000): Access denied for user 'root'@'localhost' (using password: YES)

远程连接被拒绝;

解决方法:

MySQL> useMySQL; 
Database changed 
MySQL> grant all privileges on *.* to ‘yourUser’@'%' identified by ‘yourPassword’; 
Query OK, 0 rows affected (0.00 sec) 
*.*标示所有数据库下的所有表,’*’.*标示数据库*下的所有表
MySQL> grant all on *.* to ‘yourUser’@'%' identified by ‘yourPassword’;
Query OK, 0 rows affected (0.00 sec) 
%号出可以填写允许访问的IP地址或者主机名,%标示所有的IP
Flush privileges;
Query OK, 0 rows affected (0.00 sec) 
Mysql> exit;

 

由于本版的特殊性,请勿在虚拟目录下使用 后台登录地址:http://域名/admin/login.asp用户名:admin密码:admin888 登录后台后,请在系统参数——参数设置中,将“本站域名”更改为你的域名或IP,然后再进行其他操作 如果你想使用本版自带模板、样式、标签的数据库,请在系统参数——配置文件中,确认你的主数据库为FS400.mdb 如果你想使用空数据库,请在系统参数——配置文件中,将主数据库更改为FS400_NEW.mdb 如果你在使用中遇到各种问题,请到论坛咨询(教程区主要供初级用户学习研究,交流区是为方便大家经验交流、问题讨论) FoosunCMS系统包括了信息采集、整理、分类、审核、发布和管理的全过程,具备完善的信息管理和发布管理功能,是企事业单位网站、内部网站和各类ICP网站内容管理和维护的理想工具。现推出FoosunCMS新版本是国内领先的第一款集成web2.0元素的、模块化的、开源的CMS建站系统。会员系统集成web2.0元素,满足国内企业级主流市场建站对新兴流行建站功能的需求,模版支持CSS+DIV自由设计,便于客户简单快捷的打造符合自己产品特色企业级门户站点,FoosunCMS包含13个子系统,分别是:新闻系统、下载系统、商城系统、会员系统、供求系统、人才系统、招聘系统、房产系统、采集系统、统计系统、投票系统、广告系统、留言系统、友情链接系统。 FoosunCMS新版功能系统模块化,各类功能可由用户需求自由组合,有特殊需要的用户可以进行产品定制或者做第三方功能模块的开发。采用该系统客户群体,如企业、门户、政府各部门等可以随时方便地提交需要发布的信息而无须掌握复杂的技术。 sp5更新列表 1.修改了新闻、下载子系统站点地图标签选择栏目也调出所有栏目的错误 2.修改了自由标签字段中使用mid或者substring时错误的问题 3.修改了自由标签中重复使用left自定义函数则只能取到第一个函数值的错误 4.修改了样式列表加入分类后修改错误,并且分类外仍然显示的错误 7.修改了子类新闻调用如不选择id排序则有可能调用数量无效的问题 10.修改了下载子系统搜索表单显示时间没有自动显示日期的问题 11.修改了后台添加了留言公告,前台显示无公告及公告内容无法查看的问题 12.修改了前台留言及后台留言管理分页连接不正确的问题 13.修改了系统设置了虚拟目录后,无法远程存图的问题 14.修改了自由标签中栏目列表没有判断系统是否存在商城子系统的问题 15.修改了非默认目录中access数据库压缩和备份会造成数据库丢失的问题 16.修改了调用评论页面过滤后台设置过滤字符无效的问题 17.修改了系统设置了缩略图功能无效的问题 18.检查并修改了会员中心及管理员后台冲卡的小错误 19.修改了通用标签中下载搜索标签显示时间的问题 21.修改了广告系统中弹出广告显示错误的问题,以及有条件显示广告错误的问题 22.修改了新闻系统使用二级域名后,js调用新闻使用相对路径错误的问题 23.修改了新闻终极列表标签选择权重排序时,没有权重的新闻无法正确排序的问题 24.修改了后台我的工作目录只能显示一级栏目的问题 25.修改了新增下载点击数随机显示的问题 26.修改了彻底删除外部栏目时会删除整个admin目录的问题 27.修改了新闻系统批量设置属性时各属性不能分开单独设置的问题 28.修改了修改新闻时更换扩展名之后,不能删除原静态文件的问题 29.增加了新闻、审核投稿、采集入库时新闻newsid是否重复的验证 30.修改会员登录标签及其整合的一系列问题 31.新闻编辑时候的字体显示错误问题 32.新闻和栏目预览不需要管理员登录也可以预览的问题 33.评论内容不能过滤html代码 34.系统js修改时不能选择是否包含子类 35.不选择栏目直接添加新闻时,选择栏目后模板不能继承 37.新闻不允许评论,生成页面仍然显示评论表单和评论 38.选择标题序号时,生成的新闻标题前的序号有链接 40.添加下载提示id重复 41.编辑器相关的几个小问题 44.新闻专题不能选择保存模式 45.标签调用留言点击回帖提示参数错误 47.广告锁定后仍然显示 48.同一页面无法同时调用多个投票系统 50.修改了管理员上传文件管理 51.管理员上传文件时自动创建用户名目录;一般管理员不能调用其他管理员的文件 52.实现终极列表每N条分隔 53.增强采集系统。增加定时采集、入库方式、过滤规则。 54.新闻系统栏目权限修改。允许设置详细权限。 55.修改所有子系统点击数的调用方式(解决跨域调用问题) 56.增加下载预览的功能 57.进入栏目点添加下载还需选择栏目的问题。 58.进入栏目点添加下载还需选择栏目的问题。 59.修改下载次数超过32767报错的问题。 6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值