linux中quota(磁盘配额的配置)
[
|
2009/07/24 23:46]
|
2009/07/24 23:46]
以/dev/sdb1 挂载到/目录创建的quota目录为例
1 挂载磁盘 mount /dev/sdb1 /quota
2 编辑/etc/fstab 文件 加上这么一行 /dev/sdb1 /quota ext3 defaults,usrquota,gpquota 1 1
3 要不就reboot机器 要不就做以下操作 1 umount /dev/sdb1 2 mount -a 甚至可以这么操作(没有做过) mount -a -o remount
4 扫瞄磁盘的使用者使用状况,并产生重要的 aquota.group 与 aquota.user 命令是:quotacheck -ugv /quota
如果关于 quotacheck 发生错误的解决方法:
有些时候,在新版的 Linux distribution 当中,进行 quotacheck 时,可能会出现
quotacheck: Cannot get quotafile name for /dev/hda3
quotacheck: Cannot get quotafile name for /dev/hda3
这可能是新版的 quota 在设计时的小问题,解决的方法有两个:
[root@test root]# quotacheck -uvgm
# 加上 -m 的参数来强制进行,或者是:
[root@test root]# touch /home/aquota.user; touch /home/aquota.group
既然 quotacheck 找不到 quotafile ,那么我就手动将 quotafile 建立起来即可!
然后再重新进行 quotacheck 一次即可!
注意喔!因为我的 /dev/hda3 对应到 /home ,所以当然就是在 /home 底下建立起 qoutafile 了!
5 使用edquota 命令创建quota
edquota -u 用户名 回车结果为
Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 8 0 0 5 0 0
6 当然也可以复制到其他用户中 edquota -p 用户1 -u 用户2
7 也可以edquota -t 设置soft的时间 回车 结果为
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda3 0minutes 0minutes
上面的 0minutes 可以改成 60minutes 即可!也就是 60 分钟之内必须要赶快整理硬盘的意思!
8 开始quota 功能
[root @test /root ]# quotaon [-a] [-uvg directory]
参数说明:
-a :全部的 quota 设定都启动(会自动去寻找 /etc/mtab 的设定)
-u :使用者的 quota 启动
-g :群组的 quota 设定启动
-s :显示讯息
范例:
[root @test /root ]# quotaon -a <==全部的 quota 限制都启动
[root @test /root ]# quotaon -uv /quota <==只有激活 /quota 底下的使用者 quota 限额,group 不激活!
关闭
quotaoff -a
我在操作中的问题 由于不是真服务器 我创建的用户组为 test 而每个用户的uid和gid 分别为 用户名:test
但是我在测试时 是直接以root的身份去拷贝文件到用户的相应目录下,这样uid和gid都是root 拷贝完后 用quota -u 用户 怎么也看不到quota 的效果 最好把拷贝的文件uid和gid 修改了一下 就可以了。
完毕!!!!!!!!!!!!!!
1 挂载磁盘 mount /dev/sdb1 /quota
2 编辑/etc/fstab 文件 加上这么一行 /dev/sdb1 /quota ext3 defaults,usrquota,gpquota 1 1
3 要不就reboot机器 要不就做以下操作 1 umount /dev/sdb1 2 mount -a 甚至可以这么操作(没有做过) mount -a -o remount
4 扫瞄磁盘的使用者使用状况,并产生重要的 aquota.group 与 aquota.user 命令是:quotacheck -ugv /quota
如果关于 quotacheck 发生错误的解决方法:
有些时候,在新版的 Linux distribution 当中,进行 quotacheck 时,可能会出现
quotacheck: Cannot get quotafile name for /dev/hda3
quotacheck: Cannot get quotafile name for /dev/hda3
这可能是新版的 quota 在设计时的小问题,解决的方法有两个:
[root@test root]# quotacheck -uvgm
# 加上 -m 的参数来强制进行,或者是:
[root@test root]# touch /home/aquota.user; touch /home/aquota.group
既然 quotacheck 找不到 quotafile ,那么我就手动将 quotafile 建立起来即可!
然后再重新进行 quotacheck 一次即可!
注意喔!因为我的 /dev/hda3 对应到 /home ,所以当然就是在 /home 底下建立起 qoutafile 了!
5 使用edquota 命令创建quota
edquota -u 用户名 回车结果为
Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 8 0 0 5 0 0
6 当然也可以复制到其他用户中 edquota -p 用户1 -u 用户2
7 也可以edquota -t 设置soft的时间 回车 结果为
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda3 0minutes 0minutes
上面的 0minutes 可以改成 60minutes 即可!也就是 60 分钟之内必须要赶快整理硬盘的意思!
8 开始quota 功能
[root @test /root ]# quotaon [-a] [-uvg directory]
参数说明:
-a :全部的 quota 设定都启动(会自动去寻找 /etc/mtab 的设定)
-u :使用者的 quota 启动
-g :群组的 quota 设定启动
-s :显示讯息
范例:
[root @test /root ]# quotaon -a <==全部的 quota 限制都启动
[root @test /root ]# quotaon -uv /quota <==只有激活 /quota 底下的使用者 quota 限额,group 不激活!
关闭
quotaoff -a
我在操作中的问题 由于不是真服务器 我创建的用户组为 test 而每个用户的uid和gid 分别为 用户名:test
但是我在测试时 是直接以root的身份去拷贝文件到用户的相应目录下,这样uid和gid都是root 拷贝完后 用quota -u 用户 怎么也看不到quota 的效果 最好把拷贝的文件uid和gid 修改了一下 就可以了。
完毕!!!!!!!!!!!!!!
主mysql 和从mysql实现双机同步的配置
[
|
2009/07/24 19:30]
|
2009/07/24 19:30]
1 安装mysql (两台都装)
http://www.google.cn/search?hl=zh-CN&client=firefox-a&channel=s&rls=org.mozilla%3Azh-CN%3Aofficial&newwindow=1&q=linux+mysql%E6%BA%90%E4%BB%A3%E7%A0%81%E5%AE%89%E8%A3%85&btnG=Google+%E6%90%9C%E7%B4%A2
groupadd 500 mysql
useradd 500 mysql -g mysql
tar 包
进目录
./congure --prefix=/usr/local/mysql
make
make install
cd 包解压的目录
拷贝 配置文件 到/etc/my.cnf
cp /usr/local/mysql/bin/mysql /usr/sbin
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
cd /usr/local/mysql
chown -R root .
chown -R mysql var
chgrp -R mysql var
/usr/local/mysql/bin/msyqld_install --user=mysql &
/usr/local/msyql/bin/mysql_sate --user=msyql &
双击备份
master
vi /etc/my.cnf
修改server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
default-character-set = utf8
保存后推出
进入master 的mysql
建立一个slave服务器的用户账号
mysql > grant replication slave on *.* to ludy@192.168.6.5 identified by 'ypmwbg'; //给予权限
如果同步之前master数据库是空的 可以忽略这一步
进入master数据库的Mysql控制台执行
mysql >FLUSH TABLES WITH READ LOCK; //锁表
然后从新打开一个 终端 拷贝 master 的所有的数据到 slave 服务器覆盖
读取 master 二进制文件与偏移量
mysql > show master status;
同样 要记录下 file 与 position 的值
然后解锁
mysql > unlock tables;
slave服务器 vi /etc/my.cnf 如果要配置双机 那么master也要写
server-id = 2
master-host = 192.168.6.4
master-user = ludy
master-password = ypmwbg
master-port = 3306
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
skip-slave-start
配置完后 重新启动mysql
然后进入 m master 服务器
use mysql
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记住 | mysql-bin.000001 | 98
进入 slave mysql
use mysql
mysql> change master to master_log_file='mysql-bin.000001', master_log_pos=98;
//这个地方就是记录下来的 mysql1 master 的数据
mysql > start slave; //启动slave 服务
mysql > show slave status\G
http://www.google.cn/search?hl=zh-CN&client=firefox-a&channel=s&rls=org.mozilla%3Azh-CN%3Aofficial&newwindow=1&q=linux+mysql%E6%BA%90%E4%BB%A3%E7%A0%81%E5%AE%89%E8%A3%85&btnG=Google+%E6%90%9C%E7%B4%A2
groupadd 500 mysql
useradd 500 mysql -g mysql
tar 包
进目录
./congure --prefix=/usr/local/mysql
make
make install
cd 包解压的目录
拷贝 配置文件 到/etc/my.cnf
cp /usr/local/mysql/bin/mysql /usr/sbin
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
cd /usr/local/mysql
chown -R root .
chown -R mysql var
chgrp -R mysql var
/usr/local/mysql/bin/msyqld_install --user=mysql &
/usr/local/msyql/bin/mysql_sate --user=msyql &
双击备份
master
vi /etc/my.cnf
修改server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
default-character-set = utf8
保存后推出
进入master 的mysql
建立一个slave服务器的用户账号
mysql > grant replication slave on *.* to ludy@192.168.6.5 identified by 'ypmwbg'; //给予权限
如果同步之前master数据库是空的 可以忽略这一步
进入master数据库的Mysql控制台执行
mysql >FLUSH TABLES WITH READ LOCK; //锁表
然后从新打开一个 终端 拷贝 master 的所有的数据到 slave 服务器覆盖
读取 master 二进制文件与偏移量
mysql > show master status;
同样 要记录下 file 与 position 的值
然后解锁
mysql > unlock tables;
slave服务器 vi /etc/my.cnf 如果要配置双机 那么master也要写
server-id = 2
master-host = 192.168.6.4
master-user = ludy
master-password = ypmwbg
master-port = 3306
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
skip-slave-start
配置完后 重新启动mysql
然后进入 m master 服务器
use mysql
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记住 | mysql-bin.000001 | 98
进入 slave mysql
use mysql
mysql> change master to master_log_file='mysql-bin.000001', master_log_pos=98;
//这个地方就是记录下来的 mysql1 master 的数据
mysql > start slave; //启动slave 服务
mysql > show slave status\G
apache 运行多个web网站
[
|
2009/07/24 19:26]
|
2009/07/24 19:26]
修改httpd.config 就行
内容如下(运行了三个网站 (55.net www.55.net cms.55.net ))
ServerRoot "/usr/local/apache2"
StartServers 50
MinSpareServers 10
MaxSpareServers 20
ServerLimit 2000
MaxClients 2000
MaxRequestsPerChild 10000
这是后来添加上去的 *(看了http://sery.blog.51cto.com/10037/62376) 网站速度慢
NameVirtualHost *:80 (开启 是要添加的)
Listen 80
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/html
ServerName 55.net
ErrorLog /var/http/55.net.error_log
#CustomLog /var/http/55.net.access_log combined
#AccessLog /var/http/55.net.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
第一个网站
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/html2
ServerName www.55.net
ErrorLog /var/http/www.55.net.error_log
#CustomLog /var/http/www/55.net.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
第二个网站
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/cms
ServerName cms.55.net
ErrorLog /var/http/cms.err_log
#CustomLog /var/http/cms.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
第三个网站
LoadModule php5_module modules/libphp5.so
User nobody
Group nobody
DirectoryIndex index.php index.html
Order allow,deny
Deny from all
Satisfy All
内容如下(运行了三个网站 (55.net www.55.net cms.55.net ))
ServerRoot "/usr/local/apache2"
StartServers 50
MinSpareServers 10
MaxSpareServers 20
ServerLimit 2000
MaxClients 2000
MaxRequestsPerChild 10000
NameVirtualHost *:80 (开启 是要添加的)
Listen 80
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/html
ServerName 55.net
ErrorLog /var/http/55.net.error_log
#CustomLog /var/http/55.net.access_log combined
#AccessLog /var/http/55.net.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/html2
ServerName www.55.net
ErrorLog /var/http/www.55.net.error_log
#CustomLog /var/http/www/55.net.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ServerAdmin aa@bingbingulu.cn
DocumentRoot /home/cms
ServerName cms.55.net
ErrorLog /var/http/cms.err_log
#CustomLog /var/http/cms.access_log
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
LoadModule php5_module modules/libphp5.so
User nobody
Group nobody
DirectoryIndex index.php index.html
Order allow,deny
Deny from all
Satisfy All
配置php支持GD库
[
|
2009/07/24 19:23]
|
2009/07/24 19:23]
http://411086.blog.51cto.com/401086/81417
1 apache+php+mysql都能正常工作(默认不支持GD) (php5必须要有libxml支持 所以在安装ph5之前 一定要先保证有libxml)
2 编译安装 jpeg6 编译时加 --enable-shared --enable-static 参数 另外编译前要手动创建相关目录mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1
gd-2.0.33.tar.gz http://www.boutell.com/gd/ http://www.boutell.com/gd/http/
jpegsrc.v6b.tar.gz http://www.ijg.org/
libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/
zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/
3 编译安装
zlib
libpng
freetype http://ftp.twaren.net/Unix/NonGNU/freetype/
参数加安装路径就行
4 编译安装GD ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/
--with-png=/usr/local/lib/
--with-zlib=/usr/local/lib/
--with-freetype=/usr/local/freetype/
make; make install
5 重新编译PHP ./configure --prefix=/usr/local/php5/ --sysconfdir=/usr/local/php5/lib/ --with-libxml-dir=/usr/local/libxml2/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysql-sock=/usr/local/mysql/var/mysql.sock --enable-ftp --enable-sockets --with-gd=/usr/local/gd/ --with-jpeg-dir=/usr/local/jpeg/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-zlib-dir=/usr/local/zlib/ --enable-gd-native-ttf --with-ttf --enable-magic-quotes --with-iconv -enable-mbstring=all
6 service httpd restart (用ps 查看可以没有进程 再service httpd start 就可以了)
7 可以用 dedecms测试 GD已经可以支持了
配置postfix+dovecot+sasl
[
|
2009/07/24 19:17]
|
2009/07/24 19:17]
参考 http://ankey.blog.51cto.com/35353/7519 和http://www.centospub.com/make/postfix_smtp.html
安装前,先在dns上增加邮件mx记录。 怎么增加请查看[url=http://ywblog.bingbinglu.cn/read.php/1.htm][/url]
1 安装 postfix dovecot cyrus-sasl stunnel(端口加密没有成功) 直接安装的rpm包 安装dovecot 时 需要安装perl-DBI-1.40-9.i386.rpm 和mysql-4.1.22-2.el4.i386.rpm 这些包可以直接从http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/ 下载
2 先停掉sendmail chkconfig sendmail off
3 配置 saslauthd 安装
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL 后 直接 start 就行 然后chkconfig saslauthd on
4 测试一下是否成功
testsaslauthd -u 系统用户名 -p 密码 或者/usr/sbin/testsaslauthd –u 系统用户名 –p ‘对应的密码’
如果提示:
0: OK "Success."
则说明已安装成功!
注:Cyrus-sasl的功能就是实现密码验证机制。
5 配置postfix 配置文件为/etc/postfix/main.cf
@1 修改mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = 域名
myhostname = mail.域名
mynetworks = 192.168.1.0/24, 127.0.0.0/8, 192.168.1.100/32
myorigin = $mydomain
然后在最后面 加上一下几行 主要是为了支持smtp认证
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain= ''
smtpd_recipient_restrictions =
permit_sasl_authenticated
permit_auth_destination
permit_mynetworks
check_relay_domain
reject_rbl_client yahoo.com.tw
reject_rbl_client cbl.anti-spam.org.cn
reject_rbl_client cdl.anti-spam.org.cn
reject_rbl_client cblplus.anti-spam.org.cn
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options=noanonymous
unknown_local_recipient_reject_code = 550
Postfix配置文件默认情况下,没有启用SMTP认证机制,所以,需要修改postfix的主配置main.cf文件,也即上面最后加的内容,这些就是实现SMTP功能的配置内容!
现在可以启动postfix服务:
/etc/init.d/postfix start //启动postfix服务
chkconfig postfix on //设置postfix开机自启动。
可以通过netstat –ntl进行查看SMTP的端口(25)是否起来。
然后就可以进行测试是否能发信,如果不行的话,请查看一下:
/usr/lib/sasl2下是否存在着smtpd.conf与Sendmail.conf两个文件,其内容为:
[root@xtmail sasl2]# cat Sendmail.conf
pwcheck_method:saslauthd
与:
[root@xtmail sasl2]# cat smtpd.conf
pwcheck_method: saslauthd
安装前,先在dns上增加邮件mx记录。 怎么增加请查看[url=http://ywblog.bingbinglu.cn/read.php/1.htm][/url]
1 安装 postfix dovecot cyrus-sasl stunnel(端口加密没有成功) 直接安装的rpm包 安装dovecot 时 需要安装perl-DBI-1.40-9.i386.rpm 和mysql-4.1.22-2.el4.i386.rpm 这些包可以直接从http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/ 下载
2 先停掉sendmail chkconfig sendmail off
3 配置 saslauthd 安装
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL 后 直接 start 就行 然后chkconfig saslauthd on
4 测试一下是否成功
testsaslauthd -u 系统用户名 -p 密码 或者/usr/sbin/testsaslauthd –u 系统用户名 –p ‘对应的密码’
如果提示:
0: OK "Success."
则说明已安装成功!
注:Cyrus-sasl的功能就是实现密码验证机制。
5 配置postfix 配置文件为/etc/postfix/main.cf
@1 修改mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = 域名
myhostname = mail.域名
mynetworks = 192.168.1.0/24, 127.0.0.0/8, 192.168.1.100/32
myorigin = $mydomain
然后在最后面 加上一下几行 主要是为了支持smtp认证
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain= ''
smtpd_recipient_restrictions =
permit_sasl_authenticated
permit_auth_destination
permit_mynetworks
check_relay_domain
reject_rbl_client yahoo.com.tw
reject_rbl_client cbl.anti-spam.org.cn
reject_rbl_client cdl.anti-spam.org.cn
reject_rbl_client cblplus.anti-spam.org.cn
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options=noanonymous
unknown_local_recipient_reject_code = 550
Postfix配置文件默认情况下,没有启用SMTP认证机制,所以,需要修改postfix的主配置main.cf文件,也即上面最后加的内容,这些就是实现SMTP功能的配置内容!
现在可以启动postfix服务:
/etc/init.d/postfix start //启动postfix服务
chkconfig postfix on //设置postfix开机自启动。
可以通过netstat –ntl进行查看SMTP的端口(25)是否起来。
然后就可以进行测试是否能发信,如果不行的话,请查看一下:
/usr/lib/sasl2下是否存在着smtpd.conf与Sendmail.conf两个文件,其内容为:
[root@xtmail sasl2]# cat Sendmail.conf
pwcheck_method:saslauthd
与:
[root@xtmail sasl2]# cat smtpd.conf
pwcheck_method: saslauthd




姓名:传奇
