存档

‘Linux相关’ 分类的存档

FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个”三次握手”的过程.FTP服务还有一个非常重要的特点是它可以独立于平台.
LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
通常,访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:
(1)anonymous(匿名帐号)

七 6th, 2010 | Filed under Linux相关, 系统架构及硬件
标签:

首先我们明确了解就是Memcache是一个简单、快速、高效的分布式基于内存的缓存工具,一般用于网站等数据库数据缓存、高速交换信息的缓存,比如Session数据等等。Memcache最主要的特点就是两个:一是它是基于内存的高效Hash类缓存方式,二是使用了LUR算法来进行数据有效期控制,这两点就能够很好的满足我们的普通网站的应用。(关于 Memcache的使用和协议请参考我的另一篇文章:《Memcache的使用和协议分析详解》http://www.29ma.cn/?p=164)
Memcache本身也存在一些不足,不能说是不足,至少是为了满足它高效的存取,所以没有去实现的功能,包括:一是本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源;二是无法同步数据,容易造成单点故障。
那么其实都可以通过我们的Memcache的客户端程序来解决的,首先我们PHP的PECL中的Memcache扩展能够有效的解决Memcache的分布式问题,主要的接口就是 addServer() 函数,具体关于addServer()函数的实现可以参考该扩展源代码。那么现在就存在第二个问题,就是说无法同步数据,可以理解为 MySQL中Master/Slave的机制,就是说如果我们有多台的Memcache服务器,使用addServer函数的话,每个服务器存储的数据都是唯一的,那么任何一台服务器宕机的话,那么这台服务器上的存储数据将丢失无法访问,这样肯定是无法充分发挥我们Memcache威力的,那么我们就需要一个方式来解决这个问题,这个就是本文主要要探讨解决的问题:关于在多台 Memcache服务器中分组和同步数据的问题。

七 5th, 2010 | Filed under Linux相关, 系统架构及硬件

本文详细介绍了 linux中du命令参数的用法,并用示例进一步说明其使用方法。
Du命令功能说明:统计目录(或文件)所占磁盘空间的大小。
语  法:du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]
常用参数:
-a或 -all  为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或 –dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
-k 或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计,即当前目录的大小。
-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件& amp; gt; 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max- depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。
linux 中的du命令使用示例:
1> 要显示一个目录树及其每个子树的磁盘使用情况
du /home/linux
这在/home /linux目录及其每个子目录中显示了磁盘块数。
2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
du -k /home/linux
这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。
3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况
du -m /home/linux
这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。
4> 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux
这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。
5>查看当前目录下所有目录以及子目录的大小:
du -h .
“.”代表当前目录下。也可以换成一个明确的路径
-h表示用K、M、G的人性化形式显示
6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s表示总结的意思,即只列出一个总结的值
du [...]

六 29th, 2010 | Filed under Linux相关
标签:

cp命令
功能: 将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。
语法:cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件 复制到目标目录中。
参数:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件 名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
$ cp – i exam1.c /usr/wang/shiyan1.c 该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为shiyan1.c。 若不希望重新命名,可以使用下面的命令:  $ cp exam1.c /usr/ wang/   $ cp – r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。
=======================================================================
mv命令
功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的 组合。
语法:mv [选项] 源文件或目录 目标文件或目录
说明:视mv命令中第二个参数 类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文 件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多 [...]

六 13th, 2010 | Filed under Linux相关

一.安装
首先,如果您花费一点时间熟悉一下常用的命令 会非常有帮助!
安装LAMP并没有那么神秘。 一步一步来。这比windows下面那麻烦的配置 简单多了!
1.安装LAMP
在新立得软件包管理器中选择  编辑--使用任务分组标记软件包
在打开的窗口中 勾选 LAMP SERVER 然后确定。
在主窗口中 点击绿色的对号 应用 按钮
好了 。接下来就是等待…等待新立得 自动下载安装完。
中间会有一次提示输入mysql的root用户的密码

2.安装phpmyadmin
方案一:终端中运行命令
sudo apt-get install phpmyadmin

方案二:
强烈建议不要从源里安装
在phpmyadmin网站上下载软件包,解压缩到本地目录/var/www/phpmyadmin
tips:如果你请直接解压到/var/www/phpmyadmin,如果不存在phpmyadmin,请自行创建
在终端下执行
sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
sudo gedit /var/www/phpmyadmin/config.inc.php

找到“blowfish_secret”在后面填上任意字母
$cfg['Servers'][$i]['auth_type']=’cookie’;
$cfg['Servers'][$i]['host']=’localhost’;
$cfg['Servers'][$i]['connect_type']=’tcp’;
$cfg['Servers'][$i]['compress']=’false’;
$cfg['Servers'][$i]['extension']=’mysql’;
保存,退出
安装php5-mcrypt
sudo apt-get install php5-mcrypt

编辑php配置文件
sudo gedit /etc/php5/apache2/php.ini

在extension下面加上
extension=php5-mcrypt.so

保存,重启apache2
在浏览器里输入http://localhost/phpmyadmin

二.配置
1>apache 的配置文件路径 /etc/apache2/apache2.conf
2>php.ini 路径 /etc/php5/apache2/php.ini
3>mysql配置文件 路径 /etc/mysql/my.cnf
4>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf
5>网站根目录 /var/www

1.配置apache
终端中使用命令
sudo gedit /etc/apache2/apache2.conf

在配置文件最后面加入下面几行:
添加文件类型支持
AddType application/x-httpd-php .php .htm .html
默认字符集 根据自己需要
AddDefaultCharset UTF-8

服务器地址
ServerName 127.0.0.1

添加首页文件 三个的顺序可以换 前面的访问优先 (当然你也可以加别的 比如default.php)
<IfModule dir_module>
DirectoryIndex index.htm index.html index.php
</IfModule>

修改apache的根目录DocumentRoot:
sudo vim /etc/apache2/sites-enabled/000-default
修改DocumentRoot /var/www
重启Apache2服务即可。
sudo [...]

recently tried SUSE enterprise 10 and although i found the GUI absoloutly excellent, wireless support and sound card support was such an effort to get working, i have come back to good ol’ ubuntu. The classic linux distro where stuff seems to ‘just work’.
The following is meant to be a tutorial for [...]

很多人不愿用Linux自带Mysql、Apache、Php软件东西,可是在安置新版本时提示错误,首要缘故原由时,安置前因卸载Linux自带Mysql、Apache、Php及软件东西。
卸载步调如下:
卸载Mysql
[root@yourdomainname/]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
l 申明:rpm –qa | grep mysql 号令是为了把mysql相干的包都列出来,我上面的例子是Fedora core2默认安置mysql的rpm软件包列表,若是是此外Linux版本列出来的列表有大概会纷歧样,不外不消担忧,不管是什么,卸载都从最下面的一个包起头,直到卸载掉第一个为止。
l 好比:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方式如下:
rpm –e mysql-server
l 申明:rpm –e 是卸载rpm包的号令,背面是包名称,末了的版本号是不消打的,好比我们下一步卸载mod_auth_mysql-20030510-4.1包,方式如下:
rpm –e mod_auth_mysql
卸载Apache
[root@ yourdomainname /]# rpm -qa | grep httpd
httpd-2.0.49-4
system-config-httpd-1.2.0-3
httpd-manual-2.0.49-4
l 申明:方式跟卸载Mysql一样,不消说了吧
卸载PHP
[root@ yourdomainname /]# rpm -qa | grep php
php-odbc-4.3.4-11
php-4.3.4-11
php-mysql-4.3.4-11
php-pear-4.3.4-11
php-ldap-4.3.4-11
php-pgsql-4.3.4-11
l 申明:方式跟卸载Mysql一样,不消说了吧
l 注重:卸载的时辰若是卸载不掉,体系一样平常会提醒包的依靠干系,而且列出依靠的包的名称,先卸载提醒依靠的包就可以了。
l
若是有卸载不掉的包,可以加—nodeps这个参数来卸载,好比我们卸载php-4.3.4-11,其实卸不掉了。就用:
[root@ yourdomainname /]# rpm -e php-4.3.4-11 –nodeps
号令很强,应该行的。

六 2nd, 2010 | Filed under Linux相关

  Redhat有两大Linux产品系列,其一是免费的Fedora Core系列主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支,他们都是redhat企业级Linux,简称为 RHEL

六 2nd, 2010 | Filed under Linux相关

最近在工作的时候,要将原来在本机开发的 MySQL存储过程迁往另一Linux操作系统下的MySQL数据库,因为表结构等已经在目标数据库中存在了,不想直接拷贝数据库过去,所以用到了MySQL的存储过程导出和导入,经上网搜索发现用Mysqldump工具可以实现,具体用法为:
[root@localhost bin]# mysqldump -uroot -p -hlocalhost -P3306 -n -d -t -R DBName > procedure_name.sql
参数说明:
-n:   –no-create-db
-d:   –no-data
-t:   –no-create-info
-R:   –routines Dump stored routines (functions and procedures)
Mysqldump是客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建活装载表的SQL语句:
主要参数介绍:
1.连接选项
-u,–user=name
-p,–password=name
-h,–host=name
-P,–port=#
2.输出内容选项
–add-drop-database
–add-drop-table
-n;–no-create-db
-d;–no-data
-t;–no-create-info
3.输出格式选项
–compact
-c –complete-insert
-T(指定数据表中的数据备份为单纯的数据文件和建表SQL两个文件)
注意:xx.sql建表文件是以linux的root用户创建,而xx.txt文件则是一linux的mysql用户创建,因此这两个文件的存放路径一定要保证mysql用户有读写创建文件的权限。
–fields-terminated-by=name(域分隔符)
–fields-enclosed-by=name(域引用符)
–fields-optionally-enclosed-by=name(域引用可选字符)
–fields-escaped-by=name(转义字符)
4.字符集选项
–default–character-set=xx
5.其他选项
-F –flush-logs(备份前刷新日志)
-l –lock-tables(给所有的表加读锁)

五 27th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件

简 介
  MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
  SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
  MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
  MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
  MySQL的官方发音是”My Ess Que Ell”(不是 MY-SEQUEL )。
  第一节 MySQL的安装
  1.1 所需资源
  MySQL-3.22.32-1.i386.rpm
  MySQL-client-3.22.32-1.i386.rpm
  1.2 安装方法
  第一步:rpm -ivh MySQL-3.22.32-1.i386.rpm
  第二步:rpm -ivh MySQL-3.22.32-1.i386.rpm
  第三步:执行mysql,启动MySQL monitor就可以使用mysql数据库了。
  第二节 MySQL的使用
  2.1 启动MySQL守护进程
  /etc/rc.d/init.d/mysql start
  2.2 关闭MySQL守护进程
  /etc/rc.d/init.d/mysql stop
  2.3 检查MySQL服务器是否已经运行
2.3.1 检查MySQL的属性
    /usr/bin/mysqladmin variables
2.3.2 检查MySQL的版本信息
    /usr/bin/mysqladmin version
2.3.3 检查MySQL的运行状态
    /usr/bin/mysqladmin status
2.3.4 检查MySQL服务器此时正运行的线程信息
    /usr/bin/mysqladmin processlist
  2.4 连接和断开服务器 2.4.1 连接服务器
    mysql -h host -u user -p
    #要求输入口令
2.4.2 断开服务器
    quit
    #进入MySQL之后可以敲help来获取帮助信息
  2.5 MySQL存取权限的控制
  MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
  先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by ‘thj’ with [...]

五 25th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件