每天3-5个题目,大家可以给与答案和解释,有争议可以到Qq群或者发帖子商量,题目深度不一.(转载注明出处,谢谢)
质疑一个谋求获得进步的人,本身就值得质疑!
抱歉 刚起来。
一 apache以下配置正确吗? 并解释下它们的意思?
StartServers 3
MaxClients 3200
MinSpareThreads 50
MaxSpareThreads 250
ThreadLimit 200
ThreadsPerChild 100
MaxRequestsPerChild 0
ServerLimit 32
二 mysql 怎么给用户授权?
三 写个shell 列出当前文件夹
目录大小,以G,M,K显示。
这题出得有问题?
当前文件夹目录。也就是说当前目录下的目录,不包含目录里的子目录。
如:
#pwd
/tmp/test
#ll test
目录a
目录b
目录c
#ll 目录a
目录a1
目录a2
这题的要求是算出
目录a
目录b
目录c
的大小,再按G M K 显示。
显示的时候不能显示出
目录a1
目录a2
请不要google...可查PDF手册.
################################答案#########################
一 apache以下配置正确吗? 并解释下它们的意思?
引一个小答案吧。全的。
StartServers 3 ------启动apache时就启动的进程数
MaxClients 3200 ------apache最大同时连接数
MinSpareThreads 50 ------apache最小备用程序数量
MaxSpareThreads 250 ------apache最大备用程序数量
ThreadLimit 200 ------最大进程数------------->这是每个子进程中的线程
ThreadsPerChild 100 ------每个程序的进程数------->这是子进程建立的执行线程数
MaxRequestsPerChild 0 ------每个程序的最到请求数---->这个也是线程。为0子线程永远不会结束
ServerLimit 32 ------服务器数量上限 --------->这个不是服务数量上限了。是server允许的进程数上限。
配置文件错在那??? 错在serverlimit 放在maxclients 后面。还小于maxclients。没有一个人做实验。伤心!
有人说数量不对。数量不是此题的关键,机器配置好。连接数大有什么关键呢。呵。
MaxRequestsPerChild 0 一般不设置为0 具体优化,以后再出题吧。
二 mysql 怎么给用户授权? 就是用grant 我就直接用二位圈友的答案 了。
show的答案直接用了。
通常有2种方式:一是直接修改授权表(需要root权限),这种方式比较麻烦不推荐使用;二
是用grant语句赋予权限,例如:
mysql>grant all privileges on test.* to licong@localhost identified by '123456';
mysql>flush privileges;
grant方式需要对数据库拥有grant权限,它也是通过间接修改授权表来完成权限赋予的。收回
权限用revoke。
archmage0311的答案 直接用了。
例1:增加一个用户apple密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插
入、修改、删除的权限。
grant select,insert,update,delete on *.* to 123@"%" Identified by "123";
例2:增加一个用户apple密码为123, 让他只可以在localhost上登录,并可以对数据库mydb进行
查询、插入、修改、删除的操作。
grant select,insert,update,delete on mydb.* to apple@localhost identified by "123";
例3:
增加一个用户apple,他能从主机localhost、 server.domain和whitehouse.gov连接。他只想
要从 localhost存取A数据库,从whitehouse.gov主机存取B数据库和从所有3台主机存取apple
数据库。他想要从所有3台主机上使用口令123。
为了使用GRANT语句设置个用户的权限,运行这些命令:
shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON A.* TO apple@localhost IDENTIFIED BY '123';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON B.* TO
[email protected] IDENTIFIED BY '123';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON apple.* TO apple@'%' IDENTIFIED BY '123';
三 写个shell 列出当前文件夹目录大小,以G,M,K显示。
show的答案。算法不错。对du很是熟悉哦。
du -hs $(du -sk ./`ls -l |grep ^d |awk '{print $NF}'` |sort -nr |awk '{print $NF}')
或者
du -hs $(du -sk ./`ls -F |grep /` |sort -nr |awk '{print $NF}')
我的思路是用perl实现du -h 这个功能。所以算法很复杂。呵。
du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf"%.1f%s", $1>=2**30?
($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"):$1>=2**10? ($1/2**10, "K"): ($1, "")}e