使用 sz rz下载和上传文件

2012年5月3日 没有评论

借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。

sz用法:

下载一个文件
sz filename

下载多个文件
sz filename1 filename2

下载dir目录下的所有文件,不包含dir下的文件夹
sz dir/*

下载文件存放位置在securtCRT中设置,位于:options — session options — X/Y/Zmodem。

rz用法:输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。

分类: Linux 标签:

is not in the sudoers file

2012年4月27日 没有评论

在centos创建了一个新用户,默认是不能通过sudo来获取root的权限,当使用sudo时候会看到类似如下错误提示

xxx is not in the sudoers file

解决办法就是对用户授权,需要用root身份来进行如下操作

方法1:直接使用visudo(中间没有空格)编辑配置文件,输入命令visudo后可以看到配置信息,找到“Allow root to run any commands anywhere ”,在下面添加信息:

add_username    ALL=(ALL)       ALL

保存退出即可。

方法2:使用vi命令编辑文件/etc/sudoers

修改文件权限为可写
chmod u+w /etc/sudoers

打开配置文件,同方法1把“add_username    ALL=(ALL)       ALL”加入其中
vi /etc/sudoers

去掉文件的可写权限
chmod u-w /etc/sudoers
分类: Linux 标签:

zend studio — Invalid character used in text string

2012年4月26日 没有评论

使用zend studio 写php时候,看到项目中有很多类似“Invalid character used in text string”的警告,造成警告的原因是Validation,去掉这个警告的办法为:打开偏好设置,找到Validation项目,在右边选项中把“HTML Syntax Validator(for PHP Files)”对于的勾去掉,即不针对PHP文件做html语法检验。

分类: web前端 标签:

centos下查看磁盘的读写状况

2012年4月23日 没有评论

当系统变慢时候,我们首先关注的可能是cpu的指标,有时候发现cpu使用率一点都不高,但是系统还是卡,这时可能就需要关心另外一个影响性能的东西–磁盘的IO性能。通过top命令中的%wa可以获取系统当前的io状态,如果该值居高不小,那磁盘的IO可能就有问题了。另外可以通过iotop命令来详细了解什么程序在读写磁盘,速度以及命令行,pid 等信息。如果系统不存在该命令,可以使用如下命令安装:

yum -y install iotop

另外可以通过dd命令来简单测试一下磁盘写操作的性能,例如:

 dd if=/dev/zero of=test bs=64k count=4k oflag=dsync

命令执行完成后会给出磁盘写操作的平均速度。

mac os 下tomcat apr 警告

2012年4月18日 没有评论

在tomcat 6.0版本后,如果没有apr natvie library,启动时候都会出现类似如下的警告信息

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:...

在以前的一篇文章:Tomcat-6.0.33之APR based Apache Tomcat Native library 中介绍了如果在window和linux下解决这个问题。最近使用mac os,也遇到了同样的问题,解决的办法和linux下相似,唯一不同的是在configure时需要指定java home。

自己编译首要条件介绍已经安装了gcc,关于如果安装gcc,可以参考:mac os lion 安装gcc备忘,依赖的库似乎默认系统自带了,如果编译的时候提示缺少库,可以使用 port 方式来安装,顺便提一下 port 是一个和centos下的yum、ubuntu下的apt-get类似的包管理软件。我使用的configure参数设置如下:

./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/System/Library/Frameworks/JavaVM.framework/ --with-os-type=Headers/

然后使用make、make install就编译完成。如果成功,在目录/usr/local/apr/lib/下会生成一个名为libtcnative-1.0.dylib的库文件,使用ln命令做一个软链接到上述警告信息中提到的一个目录即可,例如:

ln -s /usr/local/apr/lib/libtcnative-1.dylib /Library/Java/Extensions/
分类: Java 标签:

mac os 屏幕录像软件

2012年4月18日 没有评论

mac os lion 下不必去花心思找破解的屏幕录像软件,其自带的QuickTime Player就有这个功能,同时还带了一些简单的编辑功能,对于普通的引用已经足够了。

使用也很简单,打开QuickTime Player,在菜单栏的“文件”选项中选择“新建屏幕录制”即可,可以选择录制指定区域或全屏,通过设置可以在录像中用圈的形式来表示鼠标的点击,录制好的文件默认存放在存放在“影片”目录中,可以直接使用QuickTime Player打开,另外通过菜单栏中的“共享”选择,将录制视频转换成多种格式。

mac os 下设置开机自启动服务

2012年4月18日 没有评论

centos下设置开机自启动某个服务,只需要把启动服务对于的命令添加到/etc/rc.local文件中即可,例如开机自动启动memcached,在文件中加入如下信息即可:

/usr/local/memcached/bin/memcached -d -m 64 -l 127.0.0.1 -p 11211 -u root

mac os lion 中似乎没有这个文件,如果要做到开机自启动,则需要通过plist脚本来完成,关于plist脚本的更多信息可以参考:mac os 定期任务配置

以自启动memcached为例,首先写一个启动memcached的shell脚本,命名为start-memcached,存放在/usr/bin下,当然文件名、存放路径可以随意按自己喜欢方式来命名,shell脚本的内容为:

#!/bin/bash

/usr/bin/memcached -d -m 16 -l 127.0.0.1 -p 11211 -u yangyz

注意该文件要有执行权限,可以使用chmod命令修改,memcached命令根据本机实际路径来书写。

在plist脚本中来执行上述shell脚本,plist脚本命名为:com.yangyz.memcached.plist,存放在/Library/LaunchDaemons下,脚本内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.yangyz.memcached.plist</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/bin/start-memcached</string>
	</array>
	<key>KeepAlive</key>
	<false/>
	<key>RunAtLoad</key>
	<true/>
	<key>StandardErrorPath</key>
	<string>/tmp/memcached.err</string>
	<key>StandardOutPath</key>
	<string>/tmp/memcached.out</string>
</dict>
</plist>

通过上述配置,每次开机后都会自动启动memcached服务了。

mac os 定期任务配置

2012年4月18日 没有评论

在linux下执行定期任务可以使用crontab,目前mac os也可以使用它,不过已不推荐使用。推荐做法是采用plist脚本,plist脚本可以设置执行的动作,时间间隔等其他一些信息。另外crontab的最小时间间隔是一分钟,使用plist脚本原则上时间间隔可以为一秒。

plist脚本存放路径为/Library/LaunchDaemons或/Library/LaunchAgents,其区别是后一个路径的脚本当用户登陆系统后才会被执行,前一个只要系统启动了,哪怕用户不登陆系统也会被执行。

可以通过两种方式来设置脚本的执行时间。一个是使用StartInterval,它指定脚本每间隔多长时间(单位:秒)执行一次;另外一个使用StartCalendarInterval,它可以指定脚本在多少分钟、小时、天、星期几、月时间上执行,类似如crontab的中的设置。

一个简单例子如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.yangyz.cron.test.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/yangyz/plist-test.sh</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>StartInterval</key>
    <integer>60</integer>
</dict>
</plist>

其中key是plist脚本定义的属性,紧跟着的下一行是该属性对应的值。上述脚本是每间隔60秒执行一次/Users/yangyz/plist-test.sh这个shell脚本,也可以使用StartCalendarInterval来替换StartInterval达到同样的效果,例如:

<key>StartCalendarInterval</key>
<dict>
  <key>Minute</key>
  <integer>0</integer>
</dict>

上述设置的意思为每天的每个小时的第0分钟执行,也即使每60秒执行一次。

plist脚本中定义的属性以及具体的含义,可以参看苹果官方网站的说明,地址为:launchd.plist(5) Mac OS X Manual Page

launchctl命令可以控制plist脚本停止或重新加载。例如:

停止脚本com.yangyz.cron.test.plist运行
launchctl unload /Library/LaunchDaemons/com.yangyz.cron.test.plist 

启动脚本com.yangyz.cron.test.plist运行
launchctl unload /Library/LaunchDaemons/com.yangyz.cron.test.plist

如果执行上面命令看到launchctl: Dubious ownership on file (skipping): /Library/LaunchDaemons/com.yangyz.cron.test.plist这样的错误,其原因是该脚本的owner和当前执行操作用户不一致。使用chown修改一下即可。

参考资料:
http://www.devdaily.com/mac-os-x/launchd-plist-examples-startinterval-startcalendarinterval
http://www.devdaily.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs

mac os 修改文件的默认打开方式

2012年4月17日 没有评论

文件有一个默认的程序和它关联,当双击文件时就通过默认关联程序打开,打开一个文件可能有多个程序,但默认只有一个,如果默认程序不是自己喜欢的,可以按下面介绍修改的。

在文件上点右键,选择“显示简介”,其中有一项目为“打开方式”,展开它并在程序列表中选择自己喜欢,点击“全部更加”即完成修改默认打开方式。

批处理中分割字符串

2012年4月17日 没有评论

把一个字符串按照特定的字符分割成多个子字符,一般的编程语言中都提供内置的方法来实现这个功能,在批处理中可以通过命令for来完成。命令格式如下:

for /f "tokens=x,y,m-n delims=chars" %%a in ("str")   do cmd

其中tokens获取分割后字符串的列数,列数从1开始技术,可以指定多个,中间用“,”分割。tokens设置具体含义如下:

tokens=x	表示只提取第x列。
tokens=x,y	表示只提取第x列和第y列。
tokens=m-n	表示提取第m列至第n列。
tokens=x*	表示提取第x列和后面所有字符串都作为第x+1列。
tokens=x,*	等同tokens=x*
tokens=x,y,m-n	表示提取第x,y列以及第m至第n列。

delims是指定风格字符,可以指定多个,例如:delims=xy,表示以x或者y作为分隔符。注意:tokens和delims必须在同一对引号中。

tokens参数决定了输出变量的个数,%%a表示第一个变量引用,%%b表示第二个变量引用,依次类推。也可以指定第一个变量为%%m、%%n等,总之下一个变量字符是上一个变量的ascii码值加1。

一个简单例子如下:

@echo off

set str=100x200x300y400y500x600y700

for /f "tokens=1,3-5,* delims=x|y" %%a in ("%str%") do (
	set c1=%%a
	set c3=%%b
	set c4=%%c
	set c5=%%d
	set c6=%%e

)

echo %c1%, %c3%, %c4%, %c5%, %c6%

pause

输出结果为:100, 300, 400, 500, 600y700。其中tokens=1,3-5,*表示提取第1、3至5列,同时把第5列后所有剩余字符串作为第6列,一个输出了5个变量,也可以写作tokens=1,3,4,5,*。

无觅相关文章插件,快速提升流量