2012年4月 的存檔

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 load /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,*。

centos中安裝xen虛擬機

2012年4月17日 沒有評論

安裝xen前需要檢查CPU是否支持虛擬化,虛擬化又分全虛擬化和半虛擬化。
半虛擬檢查:結果大于0表示支持

cat /proc/cpuinfo | grep flags | grep pae | wc -l

全虛擬化檢查:結果大于0表示支持

cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l

其中vmx是intel cpu 標志,svm是amd cpu 標志

如果CPU支持虛擬化才能使用xen,centos 5.6下安裝xen可以直接使用yum來安裝。安裝命令如下:

yum –y install kernel-xen xen

安裝好后在/boot/grub/menu.lst可以看到帶有xen內核的啟動項,把它設置為默認啟動項。重啟后就可以安裝虛擬機了。

道聽途說得到的結論是半虛擬化(PV)的性能原則上比全虛擬化(FV)要好,我的機器支持半虛擬化,所有采用這種方式來創建虛擬機。由于半虛擬化時不能使用 cdrom,iso的方式安裝,只能使用網絡方式安裝,如 http,ftp,nfs,這里采用http的方式。http服務用nginx,源是iso文件,操作步驟為:

  1. mount iso 文件 mount -o loop /iso文件的路徑/iso文件名 /mnt/iso
  2. 在nginx的根目錄下建立一個cs文件夾,拷貝 /mnt/iso下的文件到剛建立的cs文件夾中,注意nginx中的cs目錄需要有list的權限,故需要在nginx中配置autoindex on,默認是off

使用dd命令創建一個固定大小的空間作為虛擬機的硬盤,這里創建了一個10G的文件

dd if=/dev/zero of=/data/xenimgs/purecentos5_6.img bs=1024K count=10240

安裝命令:

virt-install -p -n purecentos5_6 -r 512 --vcpus=2 --file=/data/xenimgs/purecentos5_6.img  -l http://192.168.1.68/cs/  --vnc  --prompt

說明
-p 使用半虛擬
-n 虛擬機的名稱  默認會在/etc/xen中創建一個同名的配置文件
-r 虛擬機的內存
--vcpus 虛擬cpu的個數,不要超過真實cpu的個數
--file 作為磁盤使用的映像文件(可以為多個該選項,該映像文件也可以不事先創建)
-l 安裝源的路徑
--vnc 開啟vncserver,可以使用vncviewer連接,如果不指定端口,默認為5900,
如果同時還在創建第二個時候,端口為5901,依次類推,當然可以使用"--vncport=xxx"來為當前虛擬機指定一個端口
有時候由于多次操作,都不知道當前到底是哪個端口,可以使用命令 netstat -nap | grep 590 來查看一下,最后確認具體端口
--prompt 使用交互式的方式,這樣會提示你屬于一些信息

運行命令后用vncviewer連接上,可以看到跟安裝普通的linux一樣,按照要求一步一步走下去就ok.

使用已有的系統創建一個新系統,有兩種方法

方法一
拷貝老系統的映像文件為新系統的映像文件 cp purecentos5_6.img centos1.img
拷貝配置文件 cp /etc/xen/purecentos5_6 /etc/xen/centos1
修改 /etc/xen/centos1 文件中的name、uuid、disk和mac中對應的信息就大功告成了

方法二
使用virt-clone命令來完成,例如:
virt-clone -o purecentos5_6 -n centos2 -f /data/xenimgs/centos2.img

可以先創建一個干凈的系統,再根據上面的方法來創建虛擬機,這樣可以快速的創建好一個虛擬機。

無覓相關文章插件,快速提升流量

30选5怎么中奖