Archive for 01月, 2010

如何在Linux用chmod来修改所有子目录中的文件属性?

在linux下,我们可以用chmod更改文件或目录属性
例如: chmod mode file|dir
当文件夹具备相同的权限,有些文件夹下面套着好几层目录,一层一层的用chmod不是办法
我们可以这样改变所有子目录的权限: chmod mode dir -R
我们也可以用SHELL脚本实现
#!/bin/sh
find /murray -type d -exec chmod 755 {} \;
find /murray -type f -exec chmod 644 {} \;
注: /murray为你要更改的目录。


linux下LFTP的高级应用

在我刚刚发现LFTP的时候,我就注意到了它功能强大的mirror功能。
因为它可以给 mirror 命令传入参数,控制同步的行为:
–reverse 上传到FTP上,也可以使用 -R
–delete: 如果远程目录下已经没有某个文件,而本地有,则删除这个文件。
–only-newer: 只下载新的文件。mirror的判定新文件是通过文件大小和修改时间来判定的,我们可以使用–ignore-time,来屏蔽时间判定,这样mirror只通过大小来判断新闻,是同步速度加快。
–exculde: 不包含某个目录。
–verbose: 详细输出。
比如:
mirror –delete –only-newer –verbose work bak/
自动备份服务器work文件夹,到本地当前目录的 bak文件夹下,并且删除已经不存在的文件,并且只下载最新的文件,再给出详细的输出。
用 lftp 的 -e 选项,把命令直接接在 lftp 之后:
lftp -u username,password -e”mirror –delete –only-newer –verbose /work bak/” ftpIP
也可以用 at 选项指定备份的时间:
lftp at 01:00 -u username,password -e”mirror –delete –only-newer –verbose /work bak/” ftpIP
这样每天 1 点就会执行备份任务。
根据经验,ftp比rsync快很多,以后如果有大量数据备份,还是考虑使用ftp好,所以还是用好LFTP吧


如何在linux下使用userdel和 groupdel删除用户和用户组

userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有个用户murray,其家目录位于/var目录中,现在我们来删除这个用户;
userdel murray 注:删除用户murray,但不删除其家目录及文件;
userdel -r murray 注:删除用户murray,其家目录及文件一并删除;
警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录,切记;如果用户目录下有重要的文件,在删除前请备份;
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd 是极为重要的文件,可能您一不小心会操作失误;
groupdel 是用来删除用户组的;
语法格式:groupdel 用户组
groupdel admin


如何利用lftp(ftp客户端)实现linux系统间的文件同步或互拷

在windows系统中我们有很多FTP客户端可以选择,我们可以方便的进行文件管理。在linux和windows间,我们也不为难。但如果要在两个Linux服务器间通过ftp进行管理,我们就没有概念了。今天我就发现了一个Linux下的命令行客户端,很好用。这就是LFTP,这款经典FTP软件。
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。
它的操作很像SHELL。我自己用的是REDHAT,已经默认安装了。如果你用的是DEBIAN,你可以通过APT-GET INSTALL进行安装,很方便。
我们可以运行 lftp –help查看lftp的基本信息
登录ftp的形式:lftp 用户名:密码@ftp地址:传送端口(默认21)
也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。
查看文件与改变目录跟linux很像:ls和cd 对应ftp目录
下载:get当然是可以的,还可以用mget -c *.pdf
我们还可以做镜像,下载用:mirror aaa/
将aaa目录整个的下载下来,子目录也会自动复制
使用镜像模式上传:同样的put,mput,都是对文件的操作,和下载类似。
mirror -R 本地目录名
将本地目录以迭代(包括子目录)的方式反向上传到ftp site。


如何配置debian下apache2的网站

为测试主机分配域名: www.youtianxia.net
创建配置文件
在 /etc/apache2/sites-available/ 目录下创建站点配置文件 youtianxia, 内容如下:

ServerAdmin master@youtianxia.net
ServerName www.youtianxia.net
DocumentRoot /var/www/youtianxia

[...]


发现国外VPS服务器ping值过低的真正原因

刚刚买了台美国加州的linote的VPS,发现速度很慢,很是郁闷,后悔自己没买PING值低点的VPS。可后来比较发现美国VPS能在200MS之内已经算超级可以了,很多人都超慢的。终于平衡了点儿。可为什么还有那么多PING值在100MS以内的国外VPS呢。自己查了些资料,发现了其中的猫腻………
首先补习一下基础知识:中美互联网传输媒介是海底光缆
最新的海底光缆是中方上岸地点是 青岛,崇明岛,香港这三个地方;美方则是洛杉矶,俄勒冈州戛纳海滩。
中美距离是半个地球,光一秒钟30万公里,绕地球7.5圈,1秒钟=1000毫秒,则绕地球半圈速度是1000/15=66毫秒,数据返回需要同样的时间。
ping美国一台服务器,数据请求过去,再回来,所需要的时间,就是我们常说的ping值
则数据仅仅从海底光缆这头到那头,就已经需要133ms应答和传送时间了。加上双方到海缆之前经过的路由处理时间,中美服务器之间的ping值,最好的期望值,是180ms
由此可见:
1. 凡是ping值小于100ms的服务器,服务器肯定不在美国境内。
2. 香港PCCW(盈通电讯)是一家跨国jsp接入商,拥有美国地区的IP,可以通过海底光缆将美国地区的IP广播到香港,客户查询到的归属地区属于美国。但是机房位于香港地区,受香港法律管辖。而且从美国访问的话,速度并不理想。不推荐外贸客户选用“ping值小于100ms的美国服务器”。
这样看来我的LINODE服务器可算可以了。


简单介绍linux的文件目录

/bin目录
/ b i n目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序( b i n是b i n a r y - -二进制的简称),多是系统中重要的系统文件。
/sbin目录
/ s b i n目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
/etc目录
/ e t c目录存放着各种系统配置文件,其中包括了用户信息文件/ e t c / p a s s w d,系统初始化文件/ e t c / r c等。l i n u x正是*这些文件才得以正常地运行。
/root目录
/root 目录是超级用户的目录。
/lib目录
/ l i b目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
/lib/modules 目录
/lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。
/dev目录
/ d [...]


如何处理debian的linux下vsftpd服务器500 OOPS: cannot change directory错误

我在debian版的linux上安装配置vsftpd时,新建用户不能通过FTP登陆
连接上时报了500 OOPS: cannot change directory错误
开始我把文件夹属主改了,执行这个命令chown popcms /var/www/popcms/,还是不行
从CMD下的报错,我怀疑是FTP的用户的默认目录不对,或没有权限
于是我想到了usermod,执行了usermod -d /var/www/popcms/ popcms
测试成功,原来是用户默认目录


linux下apt get命令的来历及常见应用

Debian是最早的Linux发行版之一。它能引起公众注意就因为它让安装与卸载软件非常简单。在其他发行版还陷在依赖性的泥潭里时,Debian用户因为有更好的包管理系统而免受这些困扰。
Debian又一次充当了开路先锋的角色。她首创了APT(Advanced Packaging Tool)。这一工具後来被Conectiva移植到红帽子系统中用于对rpm包的管理。在其他一些发行版中我们也能看到她的身影。
apt是需要用命令来操作的软件,不过现在也出现了很多有图形的软件,比如Synaptic, Kynaptic 和 Adept。
所有基于Debian的发行都使用这个包管理系统。Deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。这里要介绍的就是如何使用安装包处理软件来达到我们的目的。
用apt-get的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上。把它们的地址加入,apt-get就能搜索到我们想要的软件。/etc/apt/sources.list是存放这些地址列表的配置文件,其格式如下:
deb [web或ftp地址] [发行版名字][main/contrib/non-free]
我们常用的Ubuntu就是一个基于Debian的发行
我们使用apt get获取这个列表,以下是我整理的常用命令
apt-get update:在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename:安装一个新软件包
apt-get remove packagename:卸载一个已安装的软件包(保留配置文件)
apt-get –purge remove packagename:卸载一个已安装的软件包(删除配置文件)
apt-get autoclean apt:会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
apt-get clean:这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
apt-get upgrade:更新所有已安装的软件包
apt-get dist-upgrade:将系统升级到新版本
* apt-get autoclean:定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可以使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下您不会再用到这些.debs文件,因此如果您为磁盘空间不足而感到焦头烂额,这个办法也许值得一试。


初探update与upgrade的区别

通常update是指更新系统,比如给windows打打补丁。
而upgrade是指升级,比如将windows xp升级为vista, QQ2007升级为2008.
下面是字面解释
update 可翻译为 更新,软件达到最新,两个版本间差别不是很大
也就是软件支持商所做出的小的修改,及时的修复一些bugs.在发行版本上以WordPress 为例,WordPress 2.83更新到WordPress 2.84或者是说Windows XP SP2 更新到 Windows SP3.
upgrade 可翻译为 升级,软件功能得到很大的提升
相对 update 来说比较大的动作,革命性的改革.比如 WordPress2.7升级到 WordPress 2.8.或者是说从Windows XP 升级到 Windows 7.
update 和 upgrade 的侧重点不一样,update主要是使软件达到最新,比如WordPress 2.84 ,但 upgrade 更侧重的是软件功能得到一个很大的提升,区别于频繁的发布最新的补丁.比如WordPress 2.7 到 WordPress 2.8 ,虽然其中还有WordPress 2.71.
在linux中常常会对apt-get的update与upgrade的区别有疑问,以下是linux系统自己的解释
man apt-get
update
update is used to resynchronize the package index files from [...]