月度归档:2013年02月

MongoDB 常用数据库命令

mongoDB提供了广泛的数据库命令,除常用的create,read,update,delete之外所有功能。

命令是如何工作的

这里有个你比较熟悉的例子:drop,如果从shell里删除一个collection,我们运行db.test.drop().实际上,在内部执行的是drop命令,跟下边用runCommand执行的操作是一样的

ok 表示是否执行成功

实际上,mongoDB的命令被实现为一种对叫$cmd的collection的特殊查询,runCommand只是使用参数进行了一次查询,所以我们的drop也可以这样写

当mongoDB服务器接到一个对$cmd的查询时,使用一种特殊的逻辑来处理。几乎所有的驱动都提供了runCommand方法来执行命令,实际上这些命令都可以通过执行查询的方式来完成。

下边是一些最常用的命令:

  • buildInfo: {“buildInfo” : 1}, 返回mongoDB服务器版本和宿主操作系统的信息

图片例子——————–

  • collStats: {“collStats” : collection},给出指定collection的统计信息,包括数据大小,分配的存储控件,索引大小等

图片例子——————–

  • distinct: {“distinct” : collection, “key”: key, “query”: query} 返回在指定的collection里符合query条件的所有key的值
  • drop: {“drop” : collection}, 删除collection的说有数据
  • dropDatabase: {“dropDatabase” : 1}, 删除当前数据库的所有数据
  • dropIndexes: {“dropIndexes” : collection, “index” : name}, 删除collection上名字为name的索引
  • findAndModify:参见第3章
  • getLastError: {“getLastError” : 1[, “w” : w[, “wtimeout” : timeout]]}, 检查此连接上最后操作的错误或状态信息,可以指定一个选项,此命令将会阻塞直到w个salves复制了最后的那个操作或者时间超时(毫秒)
  • isMaster: {“isMaster” : 1}, 检查此服务器是master还是slave
  • listCommands: {“listCommands” : 1}, 列出此服务器上所有可用命令
  • listDatabases: {“listDatabases” : 1},列出服务器上所有数据库
  • ping: {“ping” : 1},检查服务器是否正在运行,即使服务器处于锁定状体此命令也会立即返回
  • renameCollection: {“renameCollection” : a, “to” : b}, 将collection的名字从a改为b
  • repairDatabase:{“repairDatabase” : 1}, 修复并压缩当前数据库
  • serverStatus:{“serverStatus” : 1}, 获取此服务器的管理统计信息

2012的终结

最近看电视看到的一些话,觉得好,把他贴上

一个人在人生的某个时期当中,他做的选择应该有三种:
一种是你可以干什么;一种是你能干什么;还有一种是你应该干什么。
选择可以干什么的人,应该是循规蹈矩的人。
选择能干什么的人,是有自知之明的人。
选择应该干什么的人,是属于理性选择的人。
在福布斯排行榜的前十名当中,有很多富豪当初他并不是想做富豪。
有的想做诗人,有的想做音乐家。
但是到最后他们发现一个道理:就是自己擅长的往往是自己不喜欢的,自己不喜欢的,往往是自己擅长的。
所以很多人在创造了自己的一番事业之后,默默的把自己的梦想保留在自己的内心当中。

Ubuntu下安装飞信

Ubuntu中安装飞信很简单
sudo apt-add-repository ppa:happyaron/ppa    //添加软件源
sudo apt-get update   //更新APT
sudo apt-get install openfetion   //安装飞信
装玩之后,在应用程序 => 互联网 中能看到。
使用apt下载安装之后,那我的安装程序,它下载了放哪里呢?其实,

apt-get 下载之后,都会放在/var/cache/apt/archive 这个目录下,你可以把一下程序拷贝到另一个位子备份一下。

服务器网站根目录权限问题小议

CentOS上搭建的lamp环境经常碰到上传到htdocs目录权限不足的问题,
每回像这种temp目录,runtime目录都得给个权限……
chmod 777 -R temp
chmod 777 -R runtime
烦……
用setfacl命令就可以轻松搞定,下面介绍一下setfacl命令和chmod命令的区别:
setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 比较常用的用法如下:
setfacl –m u:apache:rwx file 设置apache用户对file文件的rwx权限
setfacl –m g:market:rwx file 设置market用户组对file文件的rwx权限
setfacl –x g:market file 删除market组对file文件的所有权限
getfacl file 查看file文件的权限

现在进入主题,网站根目录权限的问题刚装好的环境apache的运行者为daemon用户组也是daemon
首先我们把apache所属用户给apache
groupadd mysql
useradd -g apache apache

当然在装的过程中apache用户已经存在了
vi /etc/httpd/httpd.conf

user daemon
group daemon
改成
user apache
group apache
然后敲命令
setfacl -m u:apache:rwx -R /usr/local/apache2/htdocs
setfacl -m d:u:apache:rwx -R /usr/local/apache2/htdocs
现在web服务器的运行就交给apache用户了,并且它对/usr/local/apache2/htdocs下所文件目录拥有权限
现在查看文件看和原来比有什么变化:
[zhengzs@localhost htdocs]$ ll

总计 64
-rwxr-xr-x+ 1 zhengzs root 2205 2005-12-15 apache_pb22_ani.gif
-rwxr-xr-x+ 1 zhengzs root 2410 2005-12-15 apache_pb22.gif
-rwxr-xr-x+ 1 zhengzs root 1502 2005-12-15 apache_pb22.png
-rwxr-xr-x+ 1 zhengzs root 2326 2004-11-21 apache_pb.gif
-rwxr-xr-x+ 1 zhengzs root 1385 2004-11-21 apache_pb.png
-rwxr-xr-x+ 1 zhengzs root 44 2004-11-21 index.html.bak
-rwxr-xr-x+ 1 zhengzs root 17 02-01 23:18 phpinfo.php
drwxr-xr-x+ 19 zhengzs root 4096 02-02 00:25 ThinkPHP312
权限后面多了一个‘+’(加号),说明acl已经生效了。
* 用acl来让apache用户对/usr/local/apache2/htdocs有所有权限
这样上传的文件就不用繁琐去chmod给权限,上传到根目录的文件网站都有权利运行,维护起来相当省事