当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪64位CentOS 6.0下搭建LAMP环境详细步骤       1、确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2、如果没安装则yum安装.........
    ▪rsync详解之exclude排除文件       问题:如何避开同步指定的文件夹? --exclude rsync --exclude files and folders http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders 很常见的情况:我想同步/下的 /usr /boot/ , 但是不想复制/proc /tm.........
    ▪rsync命令排除文件和文件夹(exclude-from)       假设最开始的命令是这样的 rsync -e 'ssh -p 30000' -avl --delete --stats --progress demo@123.45.67.890:/home/demo /backup/ 一、排除单独的文件夹和文件 要排除sources文件夹,我们可以添加 '--exclude' 选项: --exclu.........

[1]64位CentOS 6.0下搭建LAMP环境详细步骤
    来源: 互联网  发布时间: 2013-12-24

1、确认搭建LAMP所需要的环境是否已经安装

[root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio
备注:安装libpng时候需要zlib-devel
             安装mysql时候需要libaio
2、如果没安装则yum安装
[root@centos6 ~]# yum install make gcc gcc-c++ zlib-devel libaio -y
3、由于要使用编译安装,所以查看httpd、mysql、php是否安装,如果安装则卸载
[root@centos6 ~]# rpm -q httpd mysql php
4、编译安装libxml2
注:libxml2是一个xml的c语言版的解析器,不仅支持c语言,还支持c++、php、Pascal、Ruby、Tcl等语言的绑定
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf libxml2-2.7.8.tar.gz
[root@centos6 LAMP]# cd ./libxml2-2.7.8
[root@centos6 libxml2-2.7.8]# ./configure  --prefix=/usr/local/libxml2/
[root@centos6 libxml2-2.7.8]# make;make install
5、编译安装libmcrypt
注:libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@centos6 LAMP]# cd ./libmcrypt-2.5.8
[root@centos6 libmcrypt-2.5.8]# ./configure  --prefix=/usr/local/libmcrypt/
[root@centos6 libmcrypt-2.5.8]# make;make install
6、编译安装zlib
注:zlib是提供数据压缩用的函式库
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf zlib-1.2.5.tar.gz
[root@centos6 LAMP]# cd ./zlib-1.2.5
[root@centos6 zlib-1.2.5]# ./configure  --prefix=/usr/local/zlib/
[root@centos6 zlib-1.2.5]# make ; make install
7、编译安装libpng
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf libpng-1.5.4.tar.gz
[root@centos6 LAMP]# cd ./libpng-1.5.4
[root@centos6 libpng-1.5.4]#
./configure --prefix=/usr/local/libpng/  --enable-shared
[root@centos6 libpng-1.5.4]# make ; make install
8、编译安装jpeg
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf jpegsrc.v8c.tar.gz
[root@centos6 LAMP]# cd ./jpeg-8c/
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/(创建jpeg软件的安装目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/bin/(创建存放命令的目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/lib/(创建jpeg库文件所在目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/include/(创建存放头文件目录)
[root@centos6 jpeg-8c]# mkdir -p /usr/local/jpeg/man/man1(建立存放手册的目录)
[root@centos6 jpeg-8c]#
 ./configure --prefix=/usr/local/jpeg/ --enable-shared --enable-static(建立共享库使用的GNU的libtool和静态库使用的GNU的libtool)
[root@centos6 jpeg-8c]# make ; make install
9、编译安装freetype
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf freetype-2.4.6.tar.gz
[root@centos6 LAMP]# cd ./freetype-2.4.6
[root@centos6 freetype-2.4.6]#
 ./configure --prefix=/usr/local/freetype/ --enable-shared
[root@centos6 freetype-2.4.6]# make ;make install
10、      编译安装autoconf
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf autoconf-2.68.tar.gz
[root@centos6 LAMP]# cd ./autoconf-2.68
[root@centos6 autoconf-2.68]# ./configure
[root@centos6 autoconf-2.68]# make ; make install
11、      编译安装GD
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf gd-2.0.35.tar.gz
[root@centos6 LAMP]# cd ./gd-2.0.35
[root@centos6 gd-2.0.35]#
 ./configure --prefix=/usr/local/gd/ --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
[root@centos6 gd-2.0.35]# make ; make install
12、      安装apache
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf httpd-2.2.19.tar.gz
[root@centos6 LAMP]# cd ./httpd-2.2.19
[root@centos6 httpd-2.2.19]#
 ./configure --prefix=/usr/local/apache/ --enable-so --enable-rewrite
[root@centos6 httpd-2.2.19]# make ; make install
[root@centos6 LAMP]# /usr/local/apache/bin/apachectl start
[root@centos6 LAMP]#
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
[root@centos6 LAMP]# chmod +x /etc/init.d/httpd
[root@centos6 ~]# chkconfig --add httpd
注意:如果提示service httpd does not support chkconfig错误
解决办法:编辑/etc/rc.d/init.d/httpd在文件第二行加入
           #chkconfig:2345 10 90
           #description:Activates/Deactivates Apache Web Server
[root@centos6 ~]# chkconfig --level 2345 httpd on
[root@centos6 LAMP]# service httpd restart
开机自动启动apache的另一种方法:
修改/etc/rc.local文件
# vim /etc/rc.local
在文件中添加/usr/local/apache/bin/apachectl start
13、      编译安装mysql
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf mysql-5.5.15-linux2.6-x86_64.tar.gz
[root@centos6 LAMP]# cd ./mysql-5.5.15-linux2.6-x86_64
[root@centos6 mysql-5.5.15-linux2.6-x86_64]# groupadd mysql
[root@centos6 mysql-5.5.15-linux2.6-x86_64]# useradd -r -g mysql mysql(创建mysql用户,并将用户指定至mysql组)
[root@centos6 mysql-5.5.15-linux2.6-x86_64]# cd /usr/local/
[root@centos6 local]# ln -s /tmp/LAMP/mysql-5.5.15-linux2.6-x86_64 mysql
[root@centos6 local]# cd ./mysql/
[root@centos6 mysql]# chown -R mysql .(将该目录的用户权限全部更改为mysql用户)
[root@centos6 mysql]# chgrp -R mysql .(将该目录的用户组全部改为mysql用户组)
[root@centos6 mysql]# ./scripts/mysql_install_db --user=mysql(将mysql目录的数据库使用权限指定为mysql)
[root@centos6 mysql]# chown -R root .
[root@centos6 mysql]# chown -R mysql data
[root@centos6 mysql]# cp support-files/my-medium.cnf  /etc/my.cnf(将当前目录下的配置文件拷贝到系统配置文件下,并更名为my.cnf)
[root@centos6 mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
[root@centos6 mysql]# chmod +x /etc/init.d/mysqld
[root@centos6 mysql]# chkconfig --add mysqld
[root@centos6 mysql]# chkconfig --level 345 mysqld on
[root@centos6 mysql]# service mysqld restart
[root@centos6 mysql]#
 /usr/local/mysql/bin/mysqladmin -u root password '123456'(设置root用户登录mysql的密码)
[root@centos6 mysql]# /usr/local/mysql/bin/mysql -u root –p(进入并访问mysql数据)
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.5.15-log MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>(成功登录mysql)
14、      编译安装php
[root@centos6 LAMP]# pwd
/tmp/LAMP
[root@centos6 LAMP]# tar -zxvf php-5.3.7.tar.gz
[root@centos6 LAMP]# cd ./php-5.3.7
[root@centos6 php-5.3.7]#
./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg/ --with-freetype-dir=/usr/local/freetype/--with-gd-dir=/usr/local/gd/--with-zlib-dir=/usr/local/zlib/--with-mcrypt=/usr/local/libmcrypt/--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets
[root@centos6 php-5.3.7]# make ; make install
[root@centos6 php-5.3.7]#
 cp php.ini-development /usr/local/php/lib/php.ini
#vim /usr/local/php/lib/php.ini
 //这里需要将register_globals=Off更改on模式,还有时间格式改为本地
15、      更改apache的配置文件,达到解析php文件的目的
    [root@centos6 ~]# vim /usr/local/apache/conf/httpd.conf
 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz
 Addtype application/x-httpd-php .php .phtml
     Addtype application/x-httpd-php-source .phps
添加上面绿色内容,表示apache服务中可以解析php格式文件
接下来要检查apache目录下生成的php动态连接库文件,在目录/usr/local/apache/modules,找到是否存在 libphp5.so文件
16、     验证
     [root@centos6 ~]# vim /usr/local/apache/htdocs/index.php
     添加内容为
<?php
    echo phpinfo();
?>
在客服端验证,出现下图说明php搭建成功

    
[2]rsync详解之exclude排除文件
    来源: 互联网  发布时间: 2013-12-24
问题:如何避开同步指定的文件夹? --exclude

rsync --exclude files and folders
http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders
很常见的情况:我想同步/下的 /usr /boot/ , 但是不想复制/proc /tmp 这些文件夹
如果想避开某个路径 直接添加--exclude 即可
比如--exclude “proc”
--exclude ‘sources'
Note: the directory path is relative to the folder you are backing up.
注意:这个路径必须是一个相对路径,不能是绝对路径

例子:源服务器/home/yjwan/bashshell有一个checkout文件夹
[root@CentOS5-4 bashshell]# ls -dl checkout
drwxr-xr-x 2 root root 4096 Aug 21 09:14 checkou
现在想要完全避开复制这个文件夹内容怎么办?
目标服务器执行
rsync -av --exclude “checkout” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
将不会复制这个文件夹
[root@free /tmp/bashshell]# ls -d /tmp/bashshell/checkout
ls: /tmp/bashshell/checkout: No such file or directory

注意:

1事实上,系统会把文件和文件夹一视同仁,如果checkout是一个文件,一样不会复制

2 如果想避开复制checkout里面的内容,可以这么写--exclude “checkout/123”

3 切记不可写为 --exclude “/checkout”这样绝对路径
这样写 将不会避免checkout被复制
比如
[root@free /tmp/bashshell]# rsync -av --exclude “/checkout” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
receiving file list … done
bashshell/checkout/

4可以使用通配符 避开不想复制的内容
比如--exclude “fire*”
那么fire打头的文件或者文件夹全部不会被复制
5如果想要避开复制的文件过多,可以这么写
--exclude-from=/exclude.list

exclude.list 是一个文件,放置的位置是绝对路径的/exclude.list ,为了避免出问题,最好设置为绝对路径。

里面的内容一定要写为相对路径

比如 我想避开checkout文件夹和fire打头的文件

那么/exclude.list 写为
checkout
fire*
然后执行以下命令,注意写为--exclude-from或者--exclude-from=都可以
但是不能为--exclude
rsync -av --exclude-from=”/exclude.list” yjwan@172.16.251.241:/home/yjwan/bashshell /tmp
检查结果:确实避开了checkout文件夹和fire打头的文件

问题:如何计算对比复制以后的文件数量是否正确呢?

1 查看错误日志,看是否复制时候出问题了
2在源服务器执行可知道具体文件和文件夹的总个数
ls –AlR|grep “^[-d]”|wc
然后目标服务器在计算一遍个数
看看数字是不是能对的上就ok了
对不上再研究怎么回事
3现在的问题是:如果我使用了--exclude参数就麻烦了

我怎么知道要复制几个文件?

首先,前面命令时候提到过一种写法,就是只有源地址,没有目标地址的写法,这种写法可以用来列出所有应该被复制的文件

那么用这个命令,可以计算出这个/root/bashshell下面文件和文件夹数量

在服务器端执行

[root@CentOS5-4 bashshell]# rsync -av /root/bashshell/ |grep “^[-d]” | wc
62 310 4249
和ls 得到的结果一致的
[root@CentOS5-4 bashshell]# ls -AlR |grep “^[-d]“|wc
62 558 3731
因此,比如说我不要fire 打头的文件,可以在服务器端先这样计算要复制的文件
[root@CentOS5-4 bashshell]# rsync -av --exclude “fire*” /root/bashshell/ |grep “^[-d]” | wc
44 220 2695
然后复制过去
看目标机器的文件和文件夹数量为
[root@free /tmp]# ls -AlR /tmp/bashshell/ |grep “^[-d]“|wc
44 396 2554
可以知道2者是同步的

问题:Rsync的其他几个常见参数
1
-z –compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
压缩传输,如果网络带宽不够,那么应该压缩以后传输,消耗的当然是机器资源,但是如果内网传输的话,文件数量不是很多的话,这个参数不必要的。
2
--password-file=FILE
前面说过了,只有远端机器是rsync服务器,才能用这个参数
如果你以为个FILE写的是ssh 登陆的密码,那就大错特错了,不少人犯了这个错误。
3
–stats: Adds a little more output regarding the file transfer status.
4
–progress: shows the progress of each file transfer. Can be useful to know if you have large files being backup up.

关于这个参数:

I frequently find myself adding the -P option for large transfers. It preserves partial transfers in case of interuption, and gives a progress report on each file as it's being uploaded.
I move large media files back and forth on my servers, so knowing how long the transfer has remaining is very useful.
•Previous Entry: nginx 每天定时切割Nginx日志的脚本
•Next Entry: 如何开启MySQL的远程帐号

    
[3]rsync命令排除文件和文件夹(exclude-from)
    来源: 互联网  发布时间: 2013-12-24
假设最开始的命令是这样的
rsync -e 'ssh -p 30000' -avl --delete --stats --progress demo@123.45.67.890:/home/demo /backup/

一、排除单独的文件夹和文件

要排除sources文件夹,我们可以添加 '--exclude' 选项:

--exclude 'sources'

命令是这样的:
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude 'sources' demo@123.45.67.890:/home/demo /backup/

要排除 "public_html" 文件夹下的 "database.txt" 文件:

--exclude 'public_html/database.txt'

命令是这样的:
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude 'sources' --exclude 'public_html/database.txt' demo@123.45.67.890:/home/demo /backup/

二、使用 '--exclude-from' 排除多个文件夹和文件

建立文件:
/home/backup/exclude.txt

在里面定义要排除的文件夹和文件
sources
public_html/database.*
downloads/test/*

经过测试一般
文件夹
uploads
download/softs/

使用指令:
--exclude-from '/home/backup/exclude.txt'

最后的命令如下:
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude-from '/home/backup/exclude.txt' demo@123.45.67.890:/home/demo /backup/

rsync如何实现同步目标路径下的目录,不同步路径下的文件 ,只想同步目录

代码如下:

rsync -av --delete -f '+ */' -f '- *' SRC/ DEST/

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3