﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-SA Blog --系统管理员的博客生涯-随笔分类-常用工具下载</title><link>http://www.cnitblog.com/201/category/1693.html</link><description>书写自己的系统管理博客生涯</description><language>zh-cn</language><lastBuildDate>Sat, 11 Jul 2020 07:17:58 GMT</lastBuildDate><pubDate>Sat, 11 Jul 2020 07:17:58 GMT</pubDate><ttl>60</ttl><item><title>CentOS7下yum安装GitLab-CE</title><link>http://www.cnitblog.com/201/archive/2020/07/11/92268.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sat, 11 Jul 2020 06:48:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2020/07/11/92268.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/92268.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2020/07/11/92268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/92268.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/92268.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"  cnblogs-markdown"="">     <h1>前提准备</h1> <h2>建立git用户</h2> <pre><code nginx"="">useradd git passwd git  </code></pre> <h2>关闭防火墙</h2> <pre><code r"="">systemctl stop firewalld systemctl disabled firewalld </code></pre> <h2>安装依赖库</h2> <pre><code sql"="">yum install curl openssh-server postfix cronie service postfix start chkconfig postfix on </code></pre> <h1>配置yum源进行安装</h1> <blockquote> <p>注意: gitlab-ce 镜像仅支持 x86-64 架构</p> </blockquote> <p>centos中可以直接通过配置yum源然后使用yum进行一键安装<br /> 国内可以使用的清华大学的镜像源安装GitLab，相关配置及安装参照：<a href="https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/">https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/</a><br /> 以下内容写入yum源配置文件：/etc/yum.repos.d/gitlab-ce.repo</p> <pre><code ini"=""># vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1 </code></pre> <pre><code cmake"="">yum makecache yum install gitlab-ce #自动安装最新版 # yum install gitlab-ce-x.x.x    #安装指定版本 </code></pre> <pre><code vbnet"=""># 安装成功后的提示： Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command:   sudo gitlab-ctl reconfigure </code></pre> <h1>默认路径</h1> <p>一键安装后可以利用rpm -ql gitlab-ce查询其文件安装路径及相关文件路径，其默认安装路径为/opt/gitlab/、程序数据及配置文件保存路径为/var/opt/gitlab下。<br /> 代码仓库保存位置：/var/opt/gitlab/git-data/repositories/<br /> 代码仓库备份位置：/var/opt/gitlab/backups/<br /> postgresql数据及配置目录：/var/opt/gitlab/postgresql/data/<br /> redis默认配置目录：/var/opt/gitlab/redis<br /> gitlab主要配置文件：/etc/gitlab/gitlab.rb</p> <h1>常见配置</h1> <p>修改gitlab运行外部URL默认的访问地址<br /> 编辑/etc/gitlab/gitlab.rb</p> <pre><code nginx"=""># 未修gitlab.rb配置文件中nginx配置时这个配置默认配置gitlab自带的nginx端口 external_url 'http://172.17.17.10:81'   </code></pre> <p>修改之后使用如下命令重新加载配置且同时启动gitlab所有服务：</p> <pre><code>gitlab-ctl reconfigure  </code></pre> <p>浏览器访问：<a href="http://172.17.17.10:81">http://172.17.17.10:81</a>,被重定向到密码修改界面，修改密码为root的管理员账户,修改密码后自动跳转到登录页面，用root和修改后密码登录就可以</p> <h1>GitLab常用命令</h1> <pre><code bash"="">gitlab-ctl start    # 启动所有 gitlab 组件 gitlab-ctl stop        # 停止所有 gitlab 组件 gitlab-ctl restart        # 重启所有 gitlab 组件 gitlab-ctl status        # 查看服务状态 gitlab-ctl reconfigure        # 启动服务 vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件 gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab sudo gitlab-ctl tail        # 查看日志 gitlab-ctl --help #查看更多命令 </code></pre> <h1>发送邮件配置</h1> <pre><code bash"="">gitlab_rails['smtp_enable'] = true  #启用smtp服务 gitlab_rails['smtp_address'] = "mail.ultrapower.com.cn" #smtp发送服务器 gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "xueming@ultrapower.com.cn" gitlab_rails['smtp_password'] = "12333lzxcl" gitlab_rails['smtp_domain'] = "ultrapower.com.cn" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['gitlab_email_from'] = 'xueming@ultrapower.com.cn'#与smtp_user_name一定要一样 gitlab_rails['gitlab_email_reply_to'] = 'xueming@ultrapower.com.cn' </code></pre> <p>命令测试：gitlab-rails console</p> <h1>防火墙开放端口</h1> <pre><code dockerfile"="">firewall-cmd --zone=public --list-ports <span>#查看开放端口 </span>firewall-cmd --zone=public --add-port=8081/tcp --permanent <span>#开放8081端口 </span>firewall-cmd --reload   <span>#重新加载配置 </span>#如果不需要，也可以直接关闭防火墙 systemctl stop firewalld.service </code></pre> <h1>设置中文界面</h1> <p><img src="https://img2020.cnblogs.com/blog/794174/202006/794174-20200601112902431-1031975438.png" alt="" /><br /> <img src="https://img2020.cnblogs.com/blog/794174/202006/794174-20200601112944744-1538323533.png" alt="" /><br /> <img src="https://img2020.cnblogs.com/blog/794174/202006/794174-20200601113001642-495069330.png" alt="" /></p> <p>刷新界面，就是中文的了</p>  </div><img src ="http://www.cnitblog.com/201/aggbug/92268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2020-07-11 14:48 <a href="http://www.cnitblog.com/201/archive/2020/07/11/92268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gitlab的安装与管理</title><link>http://www.cnitblog.com/201/archive/2020/07/11/92267.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sat, 11 Jul 2020 05:35:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2020/07/11/92267.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/92267.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2020/07/11/92267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/92267.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/92267.html</trackback:ping><description><![CDATA[一、git的使用<br /><br />1、git介绍<br /><br />&nbsp;&nbsp;&nbsp; git是一个分布式的版本管理系统，由linux系统的创造者Linus 于2005年开发，相对于svn git有速度快，适合大规模，跨地区多人协同开发的特点。<br /><br />2、git安装<br /><br />（1）yum安装<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 通过yum安装的软件版本较低。<br /><br />&nbsp;&nbsp;&nbsp; #使用yum安装git<br />&nbsp;&nbsp;&nbsp; ]# yum install git<br /><br />（2）编译安装<br /><br />&nbsp;&nbsp;&nbsp; 编译安装可以安装较新饿版本，新版本可以在&#8221; https://github.com/git/git/&#8221;查看<br /><br />&nbsp;&nbsp;&nbsp; #安装依赖软件<br />&nbsp;&nbsp;&nbsp; ]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker<br />&nbsp;&nbsp;&nbsp; # 下载解压git源码包<br />&nbsp;&nbsp;&nbsp; ]# wget https://github.com/git/git/archive/v2.18.0.zip<br />&nbsp;&nbsp;&nbsp; ]# unzip v2.18.0.zip<br />&nbsp;&nbsp;&nbsp; ]# cd git-2.18.0/<br />&nbsp;&nbsp;&nbsp; # 编译安装git<br />&nbsp;&nbsp;&nbsp; ]# make prefix=/usr/local/git all<br />&nbsp;&nbsp;&nbsp; ]# make prefix=/usr/local/git install<br />&nbsp;&nbsp;&nbsp; # 安装后查看git版本<br />&nbsp;&nbsp;&nbsp; ]# git --version<br />&nbsp;&nbsp;&nbsp; ]# git version 2.18.0<br /><br />3、初始化git<br /><br />&nbsp;&nbsp;&nbsp; Git下载安装完成后，在使用git前需要先创建工作目录并初始化git。<br /><br />&nbsp;&nbsp;&nbsp; # 创建工作目录<br />&nbsp;&nbsp;&nbsp; ]$ mkdir data<br />&nbsp;&nbsp;&nbsp; ]$ cd data<br />&nbsp;&nbsp;&nbsp; # 初始化工作目录<br />&nbsp;&nbsp;&nbsp; ]$ git init<br />&nbsp;&nbsp;&nbsp; Initialized empty Git repository in /home/dayi123/data/.git/<br />&nbsp;&nbsp;&nbsp; ]$ git config --global user.name "dayi123"<br />&nbsp;&nbsp;&nbsp; ]$ git config --global user.email dayi_123@126.com<br />&nbsp;&nbsp;&nbsp; # 查看初始化后相关信息<br />&nbsp;&nbsp;&nbsp; ]$ git config --list<br />&nbsp;&nbsp;&nbsp; user.name=dayi123<br />&nbsp;&nbsp;&nbsp; user.email=dayi_123@126.com<br />&nbsp;&nbsp;&nbsp; core.repositoryformatversion=0<br />&nbsp;&nbsp;&nbsp; core.filemode=true<br />&nbsp;&nbsp;&nbsp; core.bare=false<br />&nbsp;&nbsp;&nbsp; core.logallrefupdates=true<br /><br />4、git工作原理与基本操作<br /><br />（1）git工作原理<br /><br />&nbsp;&nbsp;&nbsp; 对git的操作就是将本地工作目录的文件同步到索引区，再从索引去上传到本地仓库，再从本地仓库上传到远程仓库，同时还可以将远程仓库及本地仓库的文件下载到本地工作目录。<br /><br />（2）git基本操作<br /><br />&nbsp;操作命令：<br /><br />&nbsp;&nbsp;&nbsp; git add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 加入暂存区（index区域）<br /><br />&nbsp;&nbsp;&nbsp; git status&nbsp;&nbsp;&nbsp; 查看状态<br /><br />&nbsp;&nbsp;&nbsp; git status -s 状态概览<br /><br />&nbsp;&nbsp;&nbsp; git diff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 尚未暂存的文件<br /><br />&nbsp;&nbsp;&nbsp; git diff --staged&nbsp;&nbsp;&nbsp; 暂存区文件<br /><br />&nbsp;&nbsp;&nbsp; git commit&nbsp;&nbsp;&nbsp; 提交更新，试用&#8221;-m&#8221;参数可以直接在后面输入&#8220;message&#8221;，后跟-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库，即使它们没有经过git add添加到暂存区。<br /><br />&nbsp;&nbsp;&nbsp; git reset&nbsp;&nbsp;&nbsp;&nbsp; 回滚<br /><br />&nbsp;&nbsp;&nbsp; git rm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从版本库中移除<br /><br />&nbsp;&nbsp;&nbsp; git rm --cached README 从暂存区中移除<br /><br />&nbsp;&nbsp;&nbsp; git mv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 相当于&#8221;mv&#8221;、&#8221;git rm&#8221;、&#8221;git add&#8221;三个命令<br /><br />&nbsp;&nbsp;&nbsp; git log&nbsp; 查看提交日志<br /><br />&nbsp;&nbsp;&nbsp; # 创建一个文件<br />&nbsp;&nbsp;&nbsp; ]# echo 1213456 &gt; git.test<br />&nbsp;&nbsp;&nbsp; # 将文件追加到索引区<br />&nbsp;&nbsp;&nbsp; ]# git add git.test<br />&nbsp;&nbsp;&nbsp; # 将文件提交到本地仓库<br />&nbsp;&nbsp;&nbsp; ]# git commit -m git.test<br />&nbsp;&nbsp;&nbsp; # 查看当前文件操作记录，id为文件提交id<br />&nbsp;&nbsp;&nbsp; ]# git log<br />&nbsp;&nbsp;&nbsp; commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (HEAD -&gt; master)<br />&nbsp;&nbsp;&nbsp; Author: dayi123 &lt;dayi_123@126.com&gt;<br />&nbsp;&nbsp;&nbsp; Date:&nbsp;&nbsp; Fri Aug 10 09:06:25 2018 -0400<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; git.test<br /><br />5、分支管理<br /><br />&nbsp;&nbsp;&nbsp; Git的默认所有的操作都在主分支上面，为了防止开发混乱，可以创建分支，在分支上操作，在分支上操纵执行的命令都是基于当前分支的。<br /><br />&nbsp;&nbsp;&nbsp; git branch&nbsp; 创建分支<br /><br />&nbsp;&nbsp;&nbsp; git branch &#8211;v&nbsp; 查看分支信息<br /><br />&nbsp;&nbsp;&nbsp; git branch &#8211;merged&nbsp; 查看哪些分支已经被merged到主分支<br /><br />&nbsp;&nbsp;&nbsp; git branch --no-merged 查看哪些分支没有被merged到主分支<br /><br />&nbsp;&nbsp;&nbsp; git branch -d testing&nbsp; 删除分支<br /><br />&nbsp;&nbsp;&nbsp; git checkout&nbsp; 分支名称&nbsp; 切换指针<br /><br />&nbsp;&nbsp;&nbsp; git checkout --filename&nbsp;&nbsp; 撤销对文件的修改<br /><br />&nbsp;&nbsp;&nbsp; git merge 分支名称&nbsp; 融合分支，将分支融合到主干<br /><br />&nbsp;&nbsp;&nbsp; git stash<br /><br />&nbsp;&nbsp;&nbsp; git tag&nbsp;&nbsp; 查看标签<br /><br />&nbsp;&nbsp;&nbsp; git rebase 变基，<br /><br />&nbsp;&nbsp;&nbsp; # 创建一个分支datatest1<br />&nbsp;&nbsp;&nbsp; ]# git branch datatest1<br />&nbsp;&nbsp;&nbsp; # 查看当前的分支状态<br />&nbsp;&nbsp;&nbsp; ]# git status<br />&nbsp;&nbsp;&nbsp; On branch master<br />&nbsp;&nbsp;&nbsp; nothing to commit, working tree clean<br />&nbsp;&nbsp;&nbsp; # 切换到datatest1分支<br />&nbsp;&nbsp;&nbsp; ]# git checkout datatest1<br />&nbsp;&nbsp;&nbsp; Switched to branch 'datatest1'<br />&nbsp;&nbsp;&nbsp; # 查看当前分支时已经在datatest1分支<br />&nbsp;&nbsp;&nbsp; ]# git status<br />&nbsp;&nbsp;&nbsp; On branch datatest1<br />&nbsp;&nbsp;&nbsp; nothing to commit, working tree clean<br />&nbsp;&nbsp;&nbsp; #在当前分支创建一个文件并提交到暂存区<br />&nbsp;&nbsp;&nbsp; ]# echo datatest1 &gt; branch2.html<br />&nbsp;&nbsp;&nbsp; ]# git add branch2.html<br />&nbsp;&nbsp;&nbsp; # 将当前分支merged到主分支<br />&nbsp;&nbsp;&nbsp; ]# git merge datatest1<br />&nbsp;&nbsp;&nbsp; Already up to date.<br />&nbsp;&nbsp;&nbsp; # 切换到主分支查看<br />&nbsp;&nbsp;&nbsp; ]# git checkout master<br />&nbsp;&nbsp;&nbsp; ]# git status<br />&nbsp;&nbsp;&nbsp; On branch master<br />&nbsp;&nbsp;&nbsp; Changes to be committed:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (use "git reset HEAD &lt;file&gt;..." to unstage)<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new file:&nbsp;&nbsp; branch2.html<br />&nbsp;&nbsp;&nbsp; # 查看单前那些分区被merged到主分区<br />&nbsp;&nbsp;&nbsp; ]# git branch &#8211;merged<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatest1<br />&nbsp;&nbsp;&nbsp; * master<br />&nbsp;&nbsp;&nbsp; #给当前库打标签<br />&nbsp;&nbsp;&nbsp; [root@localhost data]# git tag -a v1.0 -m &#8216;abc&#8217;<br />&nbsp;&nbsp;&nbsp; [root@localhost data]# git tag<br />&nbsp;&nbsp;&nbsp; v1.0<br /><br />6、git回滚<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回滚命令：git reset [option] [commitid]<br /><br />&nbsp;&nbsp;&nbsp; 选项<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --soft 缓存区和工作目录都不会被改变<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --mixed 默认选项。缓存区和制定的提交同步，但工作目录不受影响<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --hard 缓存区和工作目录都同步到指定的提交<br /><br />&nbsp;&nbsp;&nbsp; # 修改提交的文件并在此提交<br />&nbsp;&nbsp;&nbsp; ]# echo `date` &gt;&gt; git.test <br />&nbsp;&nbsp;&nbsp; ]# git commit -m "2"<br />&nbsp;&nbsp;&nbsp; # 获取commitid<br />&nbsp;&nbsp;&nbsp; ]# git log<br />&nbsp;&nbsp;&nbsp; commit 24867009ea7f916dc62b3fde3d4d15582fa6258b (HEAD -&gt; master)<br />&nbsp;&nbsp;&nbsp; Author: dayi123 &lt;dayi_123@126.com&gt;<br />&nbsp;&nbsp;&nbsp; Date:&nbsp;&nbsp; Fri Aug 10 09:39:55 2018 -0400<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br />&nbsp;&nbsp;&nbsp; commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (&#8211;merged, datatest1)<br />&nbsp;&nbsp;&nbsp; Author: dayi123 &lt;dayi_123@126.com&gt;<br />&nbsp;&nbsp;&nbsp; Date:&nbsp;&nbsp; Fri Aug 10 09:06:25 2018 -0400<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; git.test<br />&nbsp;&nbsp;&nbsp; # 恢复到提交前<br />&nbsp;&nbsp;&nbsp; ]# git reset --hard 43e7aa596<br />&nbsp;&nbsp;&nbsp; HEAD is now at 43e7aa5 git.test<br />&nbsp;&nbsp;&nbsp; #查看提交后的状态<br />&nbsp;&nbsp;&nbsp; ]# git log<br />&nbsp;&nbsp;&nbsp; commit 43e7aa5963db3b04691a6e4ec271b7199ab14d8b (HEAD -&gt; master, &#8211;merged, datatest1)<br />&nbsp;&nbsp;&nbsp; Author: dayi123 &lt;dayi_123@126.com&gt;<br />&nbsp;&nbsp;&nbsp; Date:&nbsp;&nbsp; Fri Aug 10 09:06:25 2018 -0400<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; git.test<br /><br />7、使用git对远程仓库管理<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用git最终要将本地文件提交到远程git仓库中或者将远程仓库中的文件下载本地进行操作，常用的操作命令有：<br /><br />&nbsp;&nbsp;&nbsp; git clone 仓库地址&nbsp; 将远程主机文件拉到本地<br /><br />&nbsp;&nbsp;&nbsp; git pull&nbsp;&nbsp; 认证后更新代码，合并到之前代码中去<br /><br />&nbsp;&nbsp;&nbsp; git fetch&nbsp; 认证后更新代码，不会合并到之前的代码中<br /><br />&nbsp;&nbsp;&nbsp; git push origin master<br /><br />&nbsp;&nbsp;&nbsp; git remote&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取远程库的信息<br /><br />&nbsp;&nbsp;&nbsp; git remote &#8211;v&nbsp;&nbsp; 获取远程库的详细名称信息<br /><br />&nbsp;&nbsp;&nbsp; git remote add xxx http://xxx&nbsp;&nbsp; 添加地址。默认第一个名程都为origin<br /><br />&nbsp;&nbsp;&nbsp; git remote show origin<br /><br />&nbsp;&nbsp;&nbsp; git remote rename pb paul&nbsp; #变更远程地址名称<br />二、搭建与管理git远程仓库gitlab<br /><br />&nbsp;&nbsp;&nbsp; Gitlab是一个基于Ruby on rails开发的源代码托管结局按方案，gitlab分为企业版和社区版两个版本。<br /><br />&nbsp;&nbsp;&nbsp; Gitlab集成了nginx postgreSQL redis sidekiq等组件，在安装gitlab时会自动安装配置。<br /><br />1、gitlab的安装与配置<br /><br />（1）安装gitlab<br /><br />&nbsp;&nbsp;&nbsp; # 配置gitlabyum源为国内源以方便安装<br />&nbsp;&nbsp;&nbsp; ]# vim /etc/yum.repos.d/gitlab-ce.repo<br />&nbsp;&nbsp;&nbsp; [gitlab-ce]<br />&nbsp;&nbsp;&nbsp; name=Gitlab CE Repository<br />&nbsp;&nbsp;&nbsp; baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/<br />&nbsp;&nbsp;&nbsp; gpgcheck=0<br />&nbsp;&nbsp;&nbsp; enabled=1<br />&nbsp;&nbsp;&nbsp; # 清除并更新yum缓存<br />&nbsp;&nbsp;&nbsp; ]# yum clean all<br />&nbsp;&nbsp;&nbsp; ]# yum makecache<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 安装gitlab，默认安装安装的为最新版本，安装时可以指定具体的版本进行安装。<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; # 安装gitlab依赖软件<br />&nbsp;&nbsp;&nbsp; ]# yum install curl policycoreutils openssh-server openssh-clients postfix<br />&nbsp;&nbsp;&nbsp; # 如果没有关闭防火墙需要配置防火墙<br />&nbsp;&nbsp;&nbsp; ]# firewall-cmd --permanent --add-service=http<br />&nbsp;&nbsp;&nbsp; # 安装gitlab<br />&nbsp;&nbsp;&nbsp; ]# yum install gitlab-ce<br /><br />（2）配置启动gitlab<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改gitlab配置文件&#8221; /etc/gitlab/gitlab.rb&#8221;，绑定自己主机ip地址。<br /><br />&nbsp;&nbsp;&nbsp; # 将external修改为自己主机ip地址<br />&nbsp;&nbsp;&nbsp; external_url 'http://192.168.16.128'<br />&nbsp;&nbsp;&nbsp; # 启动gitlab并使修改的配置生效<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl reconfigure<br /><br />（3）登录gitlab<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 安装完成后即可通过浏览器登录gitlab，第一次登录需要设置密码。<br /><br />（4）gitlab的操作命令<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab-ctl status：查看gitlab状态<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab-ctl start：启动gitlab<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab-ctl stop：停止gitlab<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab-ctl restart：重启gitlab<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab-ctl tail servername：查看gitlab集成的服务日志<br /><br />&nbsp;&nbsp;&nbsp; #查看gitlab所有组件的状态<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl status<br />&nbsp;&nbsp;&nbsp; run: alertmanager: (pid 122565) 1802s; run: log: (pid 122574) 1802s<br />&nbsp;&nbsp;&nbsp; run: gitaly: (pid 122496) 1804s; run: log: (pid 122547) 1802s<br />&nbsp;&nbsp;&nbsp; run: gitlab-monitor: (pid 122520) 1803s; run: log: (pid 122525) 1803s<br />&nbsp;&nbsp;&nbsp; run: gitlab-workhorse: (pid 122480) 1804s; run: log: (pid 122524) 1803s<br />&nbsp;&nbsp;&nbsp; run: logrotate: (pid 121671) 1900s; run: log: (pid 122530) 1803s<br />&nbsp;&nbsp;&nbsp; run: nginx: (pid 121613) 1911s; run: log: (pid 122488) 1804s<br />&nbsp;&nbsp;&nbsp; run: node-exporter: (pid 121854) 1878s; run: log: (pid 122509) 1803s<br />&nbsp;&nbsp;&nbsp; run: postgres-exporter: (pid 122585) 1801s; run: log: (pid 122591) 1801s<br />&nbsp;&nbsp;&nbsp; run: postgresql: (pid 121078) 1980s; run: log: (pid 122514) 1803s<br />&nbsp;&nbsp;&nbsp; run: prometheus: (pid 122535) 1802s; run: log: (pid 122557) 1802s<br />&nbsp;&nbsp;&nbsp; run: redis: (pid 120945) 1986s; run: log: (pid 122513) 1803s<br />&nbsp;&nbsp;&nbsp; run: redis-exporter: (pid 122068) 1855s; run: log: (pid 122526) 1803s<br />&nbsp;&nbsp;&nbsp; run: sidekiq: (pid 121478) 1923s; run: log: (pid 122516) 1803s<br />&nbsp;&nbsp;&nbsp; run: unicorn: (pid 121406) 1929s; run: log: (pid 122515) 1803s<br />&nbsp;&nbsp;&nbsp; # 查看redis日志<br />&nbsp;&nbsp;&nbsp; [root@localhost ~]# gitlab-ctl tail redis<br />&nbsp;&nbsp;&nbsp; 2018-08-10_16:42:14.05381 120945:M 10 Aug 12:42:14.047 * 10 changes in 300 seconds. Saving...<br />&nbsp;&nbsp;&nbsp; 2018-08-10_16:42:14.05398 120945:M 10 Aug 12:42:14.053 * Background saving started by pid 126469<br /><br />（5）gitlab服务安装目录说明<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/opt/gitlab/git-data/repositories/：库默认存储目录<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /opt/gitlab：应用代码和相应的依赖程序<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/opt/gitlab：&#8221;gitlab-ctl reconfigure&#8221;命令编译后的应用数据和配置文件，不需要人为修改配置<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /etc/gitlab：配置文件目录<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/log/gitlab：此目录下存放了gitlab各个组件产生的日志<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/opt/gitlab/backups/：备份文件生成的目录<br /><br />（6）变更配置文件操作<br /><br />&nbsp;&nbsp;&nbsp; gitlab-ctl show-config ：修改配置后验证配置文件<br /><br />&nbsp;&nbsp;&nbsp; gitlab-ctl reconfigure ：修改配置后重置配置文件<br /><br />2、gitlab的管理与使用<br /><br />&nbsp;&nbsp;&nbsp; Gitlab安装完成后在登录gitlab，在gitlab创建组、用户以及项目并关联起来，用户在本地生成密钥对，并将公钥拷贝到gitlab。同时创建里程碑给用户分配任务，gitlab对客户端可以做一下操作：<br /><br />&nbsp;&nbsp;&nbsp; # 将gitlab上的文件下载到本地<br />&nbsp;&nbsp;&nbsp; ]# git clone git@192.168.16.128:java/java1.git<br />&nbsp;&nbsp;&nbsp; # 在客户端创建分支完成分配的任务并上传至gitlab<br />&nbsp;&nbsp;&nbsp; ]# git branch index<br />&nbsp;&nbsp;&nbsp; ]# git checkout index<br />&nbsp;&nbsp;&nbsp; ]# echo "hello world" &gt; index.html<br />&nbsp;&nbsp;&nbsp; ]# git add .<br />&nbsp;&nbsp;&nbsp; ]# git commit -m "index"<br />&nbsp;&nbsp;&nbsp; # 提交到远程git仓库<br />&nbsp;&nbsp;&nbsp; ]# git push origin index<br />&nbsp;&nbsp;&nbsp; #查看远程库的详细信息<br />&nbsp;&nbsp;&nbsp; ]# git remote -v<br />&nbsp;&nbsp;&nbsp; origin&nbsp;&nbsp;&nbsp; git@192.168.16.128:java/java1.git (fetch)<br />&nbsp;&nbsp;&nbsp; origin&nbsp;&nbsp;&nbsp; git@192.168.16.128:java/java1.git (push)<br /><br />3、gitlab的备份与恢复<br /><br />（1）gitlab的备份<br /><br />&nbsp;&nbsp;&nbsp; 备份前需要修改配置文件&#8221;/etc/gitlab/gitlab.rb&#8221;中的以下内容：<br /><br />&nbsp;&nbsp;&nbsp; 备份文件存放路径：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab_rails['backup_path'] = '/data/backup/gitlab'<br /><br />&nbsp;&nbsp;&nbsp; 本地保留多少天备份：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gitlab_rails['backup_keep_time'] = 604800&nbsp;&nbsp; &nbsp;<br /><br />&nbsp;&nbsp;&nbsp; 修改完配置文件后需要重新加载配置文件，并手动执行一次备份<br /><br />&nbsp;&nbsp;&nbsp; #创建备份文件存放目录并授权<br />&nbsp;&nbsp;&nbsp; ]# mkdir /data/backup/gitlab -p<br />&nbsp;&nbsp;&nbsp; ]# chown -R git.git /data/backup/gitlab<br />&nbsp;&nbsp;&nbsp; #重新加载配置文件<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl reconfigure<br />&nbsp;&nbsp;&nbsp; # 手动执行一次备份并查看备份<br />&nbsp;&nbsp;&nbsp; ]# /usr/bin/gitlab-rake gitlab:backup:create<br />&nbsp;&nbsp;&nbsp; ]# ls /data/backup/gitlab/<br />&nbsp;&nbsp;&nbsp; 1533992013_2018_08_11_11.1.4_gitlab_backup.tar<br />&nbsp;&nbsp;&nbsp; # 将备份加入到定时任务中<br />&nbsp;&nbsp;&nbsp; ]# crontab -l<br />&nbsp;&nbsp;&nbsp; 03 2 * * * /usr/bin/gitlab-rake gitlab:backup:create &gt;dev/null 2&gt;&amp;1<br /><br />（2）gitlab恢复<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在恢复前需要停止数据写入服务，需要停掉&#8221;unicorn&#8221;服务以及&#8221;sidekiq&#8221;服务。<br /><br />&nbsp;&nbsp;&nbsp; # 停掉数据写入服务<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl stop unicorn<br />&nbsp;&nbsp;&nbsp; ok: down: unicorn: 0s, normally up<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl stop sidekiq<br />&nbsp;&nbsp;&nbsp; ok: down: sidekiq: 0s, normally up<br />&nbsp;&nbsp;&nbsp; # 执行恢复，backup后面为备份文件的时间戳及时间<br />&nbsp;&nbsp;&nbsp; ]# gitlab-rake gitlab:backup:restore BACKUP=1533992013_2018_08_11_11.1.4<br />&nbsp;&nbsp;&nbsp; # 恢复完成后，再次启动&#8221;unicorn&#8221;服务及&#8221;sidekiq&#8221;服务<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl start unicorn<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl start sidekiq<br /><br />4、配置gitlab发送邮件功能<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在配置gitlab发送邮件前需要确保gitlab服务所在主机已安装postfix并已启动，配置发送邮件功能够将创建用户信息及分配任务时将相关信息发送相关负责人。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配置邮件发送功能时需要在gitlab配置文件中配置一下参数：<br /><br />&nbsp;&nbsp;&nbsp; gitlab_rails['time_zone'] = 'Asia/Shanghai'<br />&nbsp;&nbsp;&nbsp; gitlab_rails['gitlab_email_enabled'] = true<br />&nbsp;&nbsp;&nbsp; gitlab_rails['gitlab_email_from'] = 'dayi_1234@126.com'<br />&nbsp;&nbsp;&nbsp; gitlab_rails['gitlab_email_display_name'] = 'gitlab'<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_enable'] = true<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_address'] = "smtp.126.com"<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_port'] = 25<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_user_name'] = "dayi123"<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_password'] = "mailsnmp_password"<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_domain'] = "126.com"<br />&nbsp;&nbsp;&nbsp; gitlab_rails['smtp_authentication'] = "login"<br /><br />配置完成后重新加载配置：<br /><br />&nbsp;&nbsp;&nbsp; #重新加载配置文件<br />&nbsp;&nbsp;&nbsp; ]# gitlab-ctl reconfigure &nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 测试时将邮箱配置为163邮箱及126邮箱（均开启了smtp）邮件不能正常发送出去，会报如下的错误（可通过&#8221; gitlab-ctl tail&#8221;命令查看日志或者登录gitlab在监控的&#8221;已停止&#8221;中查看）：<br /><br />Net::SMTPFatalError: 554 DT:SPM 126 smtp1,C8mowAD3ZCIqlohbfq7kGQ--.54263S3 1535677995,please see http://mail.163.com/help/help_spam_16.htm?ip=58.37.62.187&amp;hostid=smtp1&amp;time=1535677995<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 发送失败的原因可能是163邮箱将发送内容当做了垃圾邮件处理，导致发送不成功，当使用腾讯企业邮箱时，可以正常发送<br /><img src ="http://www.cnitblog.com/201/aggbug/92267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2020-07-11 13:35 <a href="http://www.cnitblog.com/201/archive/2020/07/11/92267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gitlab 存储仓库目录设置及数据迁移</title><link>http://www.cnitblog.com/201/archive/2020/07/11/92266.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sat, 11 Jul 2020 05:32:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2020/07/11/92266.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp; 注：一开始没有考虑到把gitlab划分好存储目录，占用系统磁盘，由于gitlab是默认安装的，随着公司代码越来越多，导致gitlab数据目录空间不足<br /><br />磁盘空间：<br /><br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# df -hT<br />&nbsp;&nbsp;&nbsp; Filesystem&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp; Used Avail Use% Mounted on<br />&nbsp;&nbsp;&nbsp; /dev/vda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ext4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40G&nbsp;&nbsp; 25G&nbsp;&nbsp; 13G&nbsp; 67% /<br /><br />&nbsp;&nbsp;&nbsp; 注：因为使用的阿里云服务，所以考虑另挂载一块磁盘专用于gitlab存储。<br />&nbsp;&nbsp;&nbsp; &#183;&#183;&#183;&#183;&#183;&#183; 云盘挂载，磁盘分区就直接略过。<br /><br />设置存储仓库数据<br /><br />默认情况下omnibus-gitlab 将仓库数据存储在 /var/opt/gitlab/git-data目录下，仓库存放在子目录 repositories里面。 以可以通过修改/etc/gitlab/gitlab.rb 的这一行来自定义 git-data 的父目录<br /><br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]#&nbsp; vim /etc/gitlab/gitlab.rb <br />&nbsp;&nbsp;&nbsp; # 把注释取消然后指定新的仓库存储位置<br />&nbsp;&nbsp;&nbsp; git_data_dirs({ "default" =&gt; { "path" =&gt; "/home/gitlab-data" } })<br /><br />&nbsp;&nbsp;&nbsp; 注： /home/gitlab-data 是我新挂载的目录，<br />&nbsp;&nbsp;&nbsp; 注意 ：目标路径和其子路径必须不能为软链接。<br /><br />使设置生效<br /><br />1.1 ，在没有数据的情况下<br /><br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]#&nbsp; gitlab-ctl stop<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# gitlab-ctl reconfigure //使修改生效<br /><br />1.2，如果 /var/opt/gitlab/git-data 目录已经存在Git仓库数据， 你可以用下面的命令把数据迁移到新的位置:<br /><br />&nbsp;&nbsp;&nbsp; # 准备迁移之前要停止GitLab服务，防止用户写入数据。<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# gitlab-ctl stop<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; # 注意 'repositories'后面不带斜杠，而<br />&nbsp;&nbsp;&nbsp; # '/home/gitlab-data'后面是有斜杠的。<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab-data/<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; # 如果需要修复权限设置，<br />&nbsp;&nbsp;&nbsp; # 可运行下面的命令进行修复。<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# gitlab-ctl reconfigure<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; # 再次检查下&nbsp; /home/gitlab-data 的目录. 正常情况应该有下面这个子目录:<br />&nbsp;&nbsp;&nbsp; # repositories<br />&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# ls&nbsp; /home/gitlab-data/<br />&nbsp;&nbsp;&nbsp; repositories<br />&nbsp;&nbsp;&nbsp; # 完工! 启动GitLab，验证下是否能<br />&nbsp;&nbsp;&nbsp; # 通过web访问Git仓库。<br />&nbsp;&nbsp;&nbsp; [root@gitlab ~]# gitlab-ctl start<br /><br />设置存储仓库数据的备用目录<br /><br />&nbsp;&nbsp;&nbsp; 注意的是：自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置， 来增加多个 git 数据存储目录。<br /><br />&nbsp;&nbsp;&nbsp; git_data_dirs({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "default" =&gt; { "path" =&gt; "/var/opt/gitlab/git-data" },&nbsp; //默认存储目录<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "alternative" =&gt; { "path" =&gt; " /home/gitlab-data" }&nbsp;&nbsp;&nbsp;&nbsp; //备用存储目录<br /><br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /><br /><img src ="http://www.cnitblog.com/201/aggbug/92266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2020-07-11 13:32 <a href="http://www.cnitblog.com/201/archive/2020/07/11/92266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>个税计算器</title><link>http://www.cnitblog.com/201/archive/2010/04/25/65601.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sun, 25 Apr 2010 11:05:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/04/25/65601.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/65601.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/04/25/65601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/65601.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/65601.html</trackback:ping><description><![CDATA[个税计算器 2010 <br><br><a href="http://www.tekken.com.cn/m/money.html">http://www.tekken.com.cn/m/money.html</a><img src ="http://www.cnitblog.com/201/aggbug/65601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-04-25 19:05 <a href="http://www.cnitblog.com/201/archive/2010/04/25/65601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TestLink简明配置手册</title><link>http://www.cnitblog.com/201/archive/2010/04/19/65448.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 19 Apr 2010 09:18:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/04/19/65448.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/65448.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/04/19/65448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/65448.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/65448.html</trackback:ping><description><![CDATA[<div class="post-content clearfix">
<p>安装完TestLink的下一步就是配置了，Testlink的配置信息包含很多方面，从日志信息、与其它bug管理工具的连接、自定义产生的文档、Email信息配置、用户认证配置、GUI定制、测试执行设置、测试规约、附件、需求支持、混合功能配置等等，在此一并列出。希望对你的TestLink的配置有所帮助，在此也声明一点，TestLink系统配置是很庞大的，部分信息是从网上搜集的。</p>
<h2><span id=more-417></span></h2>
<h2>1、配置文件概览</h2>
<p>所有的配置字段都在文件config.inc.php和它所包含的文件中。对这个版本这些就是配置文件：<br>&#8226; config.inc.php -主配置文件，它几乎被每一个页面include.<br>&#8226; config_db.inc.php -包含访问数据库的配置字段，它在安装或升级过程中创建，几乎不需要你手工修改它。<br>&#8226; custom_config.inc.php &#8211; 用在config.inc.php 文件中的默认字段值的修改，它的好处是在升级过程中你的修改能很方便的被拷贝。<br>&#8226; /cfg/.cfg.php &#8211;设置对bug跟踪工具的数据库的访问。<br>&#8226; /cfg/const.inc.php &#8211; 定义那些不支持修改的常量和变量。<br>&#8226;/gui/templates/input_dimensions.conf &#8211; 代替huml输入的硬编码属性，像maxlength和size,我们把它编进了这个文件中。（有一些历史原因造成的异常）<br>&#8226; /cfg/tl_fckeditor_config.js &#8211; 设置fckeditor组件的配置</p>
<h2>2、日志</h2>
<p>LOG LEVEL<br>日志记录的缺省级别，所需设置字段$tlCfg-&gt;log_level=&#8217;ERROR&#8217;;<br>有效值包含NONE, ERROR, INFO, DEBUG, EXTENDED，默认为error。DEBUG级别只在开发或者与bug系统集成时使用<br>LOGGING OUTPUT<br>有两种输出方式：文件和数据库。两种方法都默认打开，设置下列字段为false，如果你想要进行设置。</p>
<pre>$g_loggerCfg = null; // all loggers enabled (default)
$g_loggerCfg['db']['enabled'] = FALSE; // true/false
$g_loggerCfg['file']['enabled'] = FALSE; // true/false</pre>
<p>LOGGING PATH<br>$tlCfg-&gt;log_path=TL_ABS_PATH . &#8216;logs&#8217; . DS ;<br>日志文件的文件名和路径，配置。<br>Php的log level默认是error,我们希望php故障能够向用户显示。当然你也可以修改这个字段<br>error_reporting(E_ALL);<br>SMARTY DEBUG WINDOW<br>开发者应该使用这个字段来显示一个额外的包含所有字段和值的列表的窗口，这些值来自php脚本相关的模板组件。在产品安装时必须是false。<br>$tlCfg-&gt;smarty_debug = false;<br>如果有安全薄弱的点，在登录页和主页面会有警告。这个消息默认打开（true），false将引起文件config_check.txt，有着一个列表，创建日志目录，不会用户不会通过GUI被通知的。<br>$tlCfg-&gt;show_config_check_warning = TRUE;<br>Event viewer<br>所有早于这个值（天）的时间都将被从数据库移除。<br>$g_removeEventsOlderThan = 30;</p>
<h2>3、关于与其他缺陷追踪工具的连接</h2>
<p>在此以Mantis为例进行分析：</p>
<pre>/** The DB host to use when connecting to the mantis db */
define('BUG_TRACK_DB_HOST', 'localhost');
/** The name of the database that contains the mantis tables */  //Mantis使用的数据库名
define('BUG_TRACK_DB_NAME', 'mantis');
/** The DB type being used by mantis
values: mysql,mssql,postgres
*/
define('BUG_TRACK_DB_TYPE', '[CONFIGURE_BUG_TRACK_DB_TYPE]');
/** The DB password to use for connecting to the mantis db */
define('BUG_TRACK_DB_USER', 'mantis');                //Mantis登录数据库的用户名
define('BUG_TRACK_DB_PASS', 'mantis');                //Mantis登录数据库的密码
define('BUG_TRACK_HREF', "http://localhost/mantis/view.php?id=");  //定义查看bug号的链接
/** link to the bugtracking system, for entering new bugs */
define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost/mantis/");   //定义报bug的链接</pre>
<p>OK,基本上就这样了，另外还要打开$g_interface_bugs = &#8216;NO&#8217;;设置为YES</p>
<h2>4、产生的文档</h2>
<p>下面的字符串被用来在打印文档的首页，左边空白就是无效。</p>
<pre>$tlCfg-&gt;document_generator-&gt;company_name = 'Your Company';
$tlCfg-&gt;document_generator-&gt;company_copyright = '2008 (c) TestLink Community';
$tlCfg-&gt;document_generator-&gt;confidential_msg = 'GPL';</pre>
<p>打印的文档有自己的设计模板，你可以修改CSS模板为你自己的，</p>
<pre>$tlCfg-&gt;document_generator-&gt;css_template = $tlCfg-&gt;theme_dir .'css/tl_documents.css';</pre>
<p>测试用例版本可以被包含在产生的文档中，带着测试用例标题。</p>
<pre>$tlCfg-&gt;document_generator-&gt;tc_version_enabled = FALSE;</pre>
<h2>5、发送Email</h2>
<p>Testlink已经整合了邮件系统，支持发送报告和通知，你必须设置下列值：<br>SMTP服务器发送产生的Email，值&#8216;localhost&#8217;在大多数例子里都足够了。</p>
<pre>$g_smtp_host = 'localhost';</pre>
<p>管理员和发送者的Email地址也是强制性字段。</p>
<pre>$g_tl_admin_email = 'your.name@your_company.com'; # for problem/error notification
$g_from_email = 'no_replay@testlink.test_team'; # email sender (showed to recipient)
$g_return_path_email = 'your.name@your_company.com';</pre>
<p>你可以选择性的设置Email的优先级，5是默认的。</p>
<pre># Urgent = 1, Not Urgent = 5, Disable = 0
$g_mail_priority = 5;</pre>
<p>你的SMTP服务器应该需要登录来relayemali。在多数case里值是空的。</p>
<pre>$g_smtp_username = '';
$g_smtp_password = '';</pre>
<h2>6、用户认证</h2>
<p>Testlink支持两种验证方式， &#8216;MD5&#8242; &#8211; 使用存储在内部数据库中的加密口令。&#8217;LDAP&#8217; &#8211; 使用来自目录服务器的口令。</p>
<pre>$tlCfg-&gt;authentication['method']= 'MD5';（默认，也可设置为&#8216;&#8217;，&#8216;md5&#8217;,&#8217;ldap&#8217;）</pre>
<p>使用ldap验证的相关字段:</p>
<pre>$tlCfg-&gt;authentication['ldap_server'] = 'localhost';
$tlCfg-&gt;authentication['ldap_port'] = '389';
$tlCfg-&gt;authentication['ldap_version'] = '3';
$tlCfg-&gt;authentication['ldap_root_dn'] = 'dc=mycompany,dc=com';
$tlCfg-&gt;authentication['ldap_organization'] = ''; // e.g.
'(organizationname=*Traffic)'
$tlCfg-&gt;authentication['ldap_uid_field'] = 'uid';
$tlCfg-&gt;authentication['ldap_bind_dn'] = '';
$tlCfg-&gt;authentication['ldap_bind_passwd'] = '';</pre>
<p>登录相关配置：<br>Testlink允许新用户创建默认角色的帐号，通过在登录页面的&#8220;New User&#8221;的链接。它加速了用户的管理步骤，管理员可以通过设置下列字段为false，来使这个特性为无效，以完全在系统中控制用户。</p>
<pre>$tlCfg-&gt;user_self_signup = TRUE;</pre>
<p>注意：如果你改变了这个字段，你肯想要更新$TLS_valid_user_name_format字符串，它在语言文件中，来解释你在页面上使用的规则。</p>
<pre>$tlCfg-&gt;validation_cfg-&gt;user_login_valid_regex='/^[\w \-]+$/';</pre>
<p>常规表达式也被用来在有效用户的email地址：</p>
<pre>$tlCfg-&gt;validation_cfg-&gt;user_email_valid_regex = "/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/";</pre>
<p>配置下列字段来显示配置检查的结果：</p>
<pre>$tlCfg-&gt;show_config_check_warning = FALSE;</pre>
<p>True：消息显示在登录和testlink桌面上<br>False：一个两行的消息显示，以文件的检查结果的形式指示。</p>
<h2>7、GUI 定制</h2>
<h3>7.1、树形菜单</h3>
<p>可能值有：&#8217;EXTJS&#8217;, &#8216;LAYERSMENU&#8217;,'DTREE&#8217;, &#8216;JTREE&#8217;，EXTJS是默认值，我们推荐它。这个组件有最好的性能，因为他使用的是异步通信。</p>
<pre>$tlCfg-&gt;treemenu_type = 'EXTJS';</pre>
<p>所有类型的节点（test case，test suite）被加入以排序号码&#8220;0&#8221;，当创建一个树节点时。它的最初显示顺序是根据节点ID来的。一个父test suite拥有下个默认值来分割子test suite 和test case。这些值必须是&gt;=0.</p>
<pre>$tlCfg-&gt;treemenu_default_testsuite_order = 1;
$tlCfg-&gt;treemenu_default_testcase_order = 100;</pre>
<p>在树形菜单中显示或隐藏test case 的唯一ＩＤ：</p>
<pre>$tlCfg-&gt;treemenu_show_testcase_id = TRUE;</pre>
<p>允许在树形菜单上，根据状态计数test case。</p>
<pre>$tlCfg-&gt;exec_cfg-&gt;enable_tree_testcase_counters = ENABLED;</pre>
<h3>7.2、GUI 布局</h3>
<p>gui/themes/default/.——主题目录，包含css和图片文件。<br>你应该拷贝默认目录，修改内容和设置下列字段指向它。</p>
<pre>$tlCfg-&gt;theme_dir = 'gui/themes/your_theme/';</pre>
<p>你可以通过写你自己的CSS文件来改变testlink外观。</p>
<pre>&#8226; testlink.css (主风格定义)
&#8226; tl_print.css (打印页面的风格设置)
&#8226; tl_documents.css (用于产生的文档，像测试规约)
&#8226; tl_treemenu.css (树形菜单的特殊设置)</pre>
<p>这些文件名被作为常量定义在const.inc.php文件中，你可以根据需要修改。<br>如果你要设计你自己的logo，那么拷贝图片到gui/themes/default/images/目录，<br>$tlCfg-&gt;company_logo = &#8216;company_logo.png&#8217;;<br>注意：这个logo将被用在所有的GUI和产生的文档中。<br>登录页面可以显示信息文本，以html格式，这个值默认是空的。</p>
<pre>$tlCfg-&gt;login_info = 'Please, contact administrator <a href="http://blog.ossxp.com/2010/01/417/&#8221;mailto:jack@caribic.sea&#8221;"><u><font color=#0000ff>G. B. Shaw</font></u></a> if you have any question.';</pre>
<p>你可以修改弹头图标的文件名，默认包含arrow_org.gif and slide_gripper.gif。</p>
<pre>$tlCfg-&gt;bullet_image = 'slide_gripper.gif';</pre>
<p>指定test project背景颜色：</p>
<pre>$tlCfg-&gt;gui-&gt;testproject_coloring = 'background';</pre>
<p>打开页面，编辑test project到指定的特殊颜色，默认值是&#8220;none&#8221;（没有背景颜色的改变是允许的）。默认背景颜色是：</p>
<pre>$tlCfg-&gt;gui-&gt;background_color = '#9BD';</pre>
<p>设置显示姓名来代替只显示login，指定一种显示格式：</p>
<pre>$tlCfg-&gt;username_format = '%login%';
Examples:
'%first% %last%' -&gt; John Cook
'%last%, %first%' -&gt; Cook, John
'%first% %last% %login%' -&gt; John Cook [ux555]</pre>
<p>配置默认导航框在窗口左边的宽。</p>
<pre>$tlCfg-&gt;frame_workarea_default_width = "30%";</pre>
<p>Test project复选框在顶部菜单的顺序是可以配置的了，值必须是SQL支持的。</p>
<pre>$tlCfg-&gt;gui-&gt;tprojects_combo_order_by='ORDER BY nodes_hierarchy.id DESC';
Examples:
'ORDER BY name'
'ORDER_BY nodes_hierarchy.id DESC' -&gt; similar effect to order last created first</pre>
<p>管理者可以配置在主页导航主题的配置：</p>
<pre>$tlCfg-&gt;gui-&gt;layoutMainPageLeft = array( 'testProject' =&gt; 1,
'userAdministration' =&gt; 2 , 'requirements' =&gt; 3, 'testSpecification' =&gt; 4);
$tlCfg-&gt;gui-&gt;layoutMainPageRight = array( 'testPlan' =&gt; 1, 'testExecution' =&gt; 2 ,'testPlanContents' =&gt; 3);</pre>
<p>配置度量的仪表盘上的圆的百分比：</p>
<pre>$tlCfg-&gt;dashboard_precision = 2;</pre>
<p>控制一些GUI元素的有效性，你可以使他们无效来提高页面描述性能，</p>
<pre>$tlCfg-&gt;gui-&gt;round_corners-&gt;exec_history = ENABLED;
$tlCfg-&gt;gui-&gt;round_corners-&gt;tc_title = ENABLED;
$tlCfg-&gt;gui-&gt;round_corners-&gt;tc_spec = ENABLED;</pre>
<h3>7.3、文本域编辑</h3>
<p>文本数据编辑通过Javascript编辑器解决，它在文本域的工具栏，配置被下列数组定义</p>
<pre>$tlCfg-&gt;gui-&gt;text_editor = array();</pre>
<p>FCKeditor组件默认被使用，这是一个很有特色的组件，可以很容易的通过配置提高。</p>
<pre>$tlCfg-&gt;gui-&gt;text_editor['all'] = array(
'type' =&gt; 'fckeditor',
'toolbar' =&gt; 'tl_default',
'configFile' =&gt; 'cfg/tl_fckeditor_config.js',
);</pre>
<p>如果在这个结构中没有带搜索键的元素被发现，那么这个配置将被使用。每个元素与下列配置关键字对应：<br>字段&#8217;type&#8217; = &#8216;fckeditor&#8217;, &#8216;tinymce&#8217; 或是&#8217;none&#8217; -&gt; 使用文本域输入字段<br>下面这行修改用于所有地方的文本域：</p>
<pre>$tlCfg-&gt;gui-&gt;text_editor['all'] = array( 'type' =&gt; 'none');</pre>
<p>FCKeditor工具栏定义了在文本域菜单是否允许或是失效图标，我们推荐研究它。<br>默认的testlink工具栏定义是&#8216;tl_default&#8217;。自定义工具栏的&#8216;tl_default&#8217;定义在/cfg/tl_fckeditor_config.js文件中。你可以向对其他配置字段一样修改工具栏内容，（像templates, styles, spell checker等）。<br>字段&#8216;configFile&#8217;只对type = &#8216;fckeditor&#8217;的应用有效，例如，下面的属性就是被这些字段定义的：</p>
<pre>&#8226; 'height': FCKEditor的高
&#8226; 'width':  FCKEditor的宽
&#8226; 'cols':    tinymce and none的列数量
&#8226; 'rows':   tinymce and none的行数量</pre>
<p>提示：在做了配置修改后，清你的浏览器cookies和缓存</p>
<pre>// $tlCfg-&gt;gui-&gt;text_editor['execution'] = array( 'type' =&gt; 'none'); // BETTER
Performance with a lot of testcases
//
// This configuration is useful only if default type is set to 'fckeditor'
// $tlCfg-&gt;gui-&gt;text_editor['design'] = array('toolbar' =&gt; 'tl_mini');
//
// $tlCfg-&gt;gui-&gt;text_editor['testplan'] = array( 'type' =&gt; 'none');
// $tlCfg-&gt;gui-&gt;text_editor['build'] = array( 'type' =&gt; 'fckeditor','toolbar' =&gt;
'tl_mini');
// $tlCfg-&gt;gui-&gt;text_editor['testproject'] = array( 'type' =&gt; 'tinymce');
// $tlCfg-&gt;gui-&gt;text_editor['role'] = array( 'type' =&gt; 'tinymce');
// $tlCfg-&gt;gui-&gt;text_editor['requirement'] = array( 'type' =&gt; 'none');
// $tlCfg-&gt;gui-&gt;text_editor['requirement_spec'] = array( 'type' =&gt; 'none');</pre>
<p>性能警告：问题是fckeditor使用iframe，并且每个iframe需要下载fckeditor文件，所以可能会有一些页面有装在问题。<br>在fckeditor中打开图片装载<br>这个指导面向FCKEditor 2.3.2，但对别的版本也是有效的。<br>打开FCKEditor/fckconfig.js，确定默认的php连接被选择。<br>搜索：</p>
<pre>var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php</pre>
<p>打开FCKeditor/editor/filemanager/browser/default/connectors/php/config.php<br>安全：你必须使能&#8216;connector&#8217;，设为true。</p>
<pre>$Config['Enabled'] = true ;</pre>
<p>首先在testlink的目录下建立一个上传目录TestLink_upload，并确认该目的地址文件夹必须是可读写的而且能用网络访问的</p>
<p>1.修改\third_party\fckeditor\fckconfig.js文件，选择php模式</p>
<p>去掉// FCKConfig.ProtectedSource.Add( /&lt;\?[\s\S]*?\?&gt;/g ) ; // PHP style. server side code的注释</p>
<p>将var _FileBrowserLanguage = &#8216;asp&#8217; ; // asp | aspx | cfm | lasso | perl | php | py<br>var _QuickUploadLanguage = &#8216;asp&#8217; ; // asp | aspx | cfm | lasso | php<br>里面的asp都改为php</p>
<p>2.修改\third_party\fckeditor\editor\filemanager\browser\default\connectors\php\config.php</p>
<pre>$Config['Enabled'] = false ;
改为$Config['Enabled'] = true ;</pre>
<pre>$Config['UserFilesPath'] = '/userfiles/' ;
改为$Config['UserFilesPath'] = 'TestLink_upload/' ;</pre>
<pre>$Config['UserFilesAbsolutePath'] = '' ;
改为$Config['UserFilesAbsolutePath'] = 'C:\\www\\testlink\\TestLink_upload\\' ;</pre>
<p>3.修改\third_party\fckeditor\editor\filemanager\upload\php\config.php</p>
<pre>$Config['Enabled'] = false ;
改为$Config['Enabled'] = true ;</pre>
<pre>$Config['UserFilesPath'] = '/userfiles/' ;
改为$Config['UserFilesPath'] = 'TestLink_upload/' ;</pre>
<pre>$Config['UserFilesAbsolutePath'] = '' ;
改为$Config['UserFilesAbsolutePath'] = 'C:\\www\\testlink\\TestLink_upload\\' ;</pre>
<p>4. 重启电脑等待1-2小时后，修改就生效了(很奇怪，不是重启apache或者电脑后立马生效的，我配置2次都是如此)，实际试验发现立刻可以的。</p>
<h3>7.4、Javascript</h3>
<pre>$g_use_ext_js_library = ENABLED;</pre>
<p>定义表格整理库，默认值&#8217;kryogenix.org&#8217;，空&#8216;&#8217;使这个特性失效。</p>
<pre>$g_sort_table_engine='kryogenix.org';</pre>
<h3>7.5、使用自定义模板引擎</h3>
<p>如果你想要使用自定义模板，我们有这些配置数组，<br>$g_tpl<br>包括，</p>
<pre>&#8226; $g_tpl['tcView']
&#8226; $g_tpl['tcSearchView']
&#8226; $g_tpl['tcEdit']
&#8226; $g_tpl['tcNew']
&#8226; $g_tpl['execSetResults']</pre>
<p>允许你创建与原testlink不同名称的模板文件，不用担心在下次升级过程中有覆盖源文件的危险。<br>注意：不是所有的testlink页面都可以进行这种类型的配置。<br>标准配置:</p>
<pre>$g_tpl['tcView'] = "tcView.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";</pre>
<h2>8、测试执行设置</h2>
<p>允许XML-RPC调用外部外部测试自动化服务器，特殊按钮将会被显示在执行页面。</p>
<pre>ENABLED -&gt; enable XML-RPC calls
DISABLED -&gt; disable
$tlCfg-&gt;exec_cfg-&gt;enable_test_automation = DISABLED;</pre>
<p>在执行页面的附件管理的不同设置，这些变量预定义在const.inc.php中：</p>
<pre>$att_model_m1 -&gt; shows upload button and title
$att_model_m2 -&gt; hides upload button and title [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;att_model = $att_model_m2;</pre>
<p>用户可以删除执行结果：</p>
<pre>ENABLED -&gt; User can delete an execution result
DISABLED -&gt; User can not. [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;can_delete_execution = DISABLED;</pre>
<h3>8.1、执行历史</h3>
<p>定义执行历史顺序：<br>ASC -&gt; 上升上一次执行在最后，<br>DESC -&gt;下降最后一次执行在顶部，默认值<br>$tlCfg-&gt;exec_cfg-&gt;history_order = &#8216;DESC&#8217;;<br>在执行窗口，定义是否所选build的全部执行历史是被显示：</p>
<pre>TRUE -&gt; the whole execution history for the build will be shown
FALSE -&gt; just last execution will be shown [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;history_on = FALSE;</pre>
<p>允许显示前个build的执行结果：</p>
<pre>TRUE -&gt; test case VERY LAST (i.e. in any build) execution status will be displayed
FALSE -&gt; only last result on current build. [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;show_last_exec_any_build = FALSE;</pre>
<p>允许显示所有build的执行结果历史：</p>
<pre>TRUE -&gt; History for all builds will be shown
FALSE -&gt; Only history of the current build will be shown [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;show_history_all_builds = FALSE;</pre>
<h3>8.2. 测试执行导航</h3>
<p>根据测试用例状态显示测试用例和测试用例计数的颜色：</p>
<pre>ENABLED -&gt; 有色的测试状态 [DEFAULT VALUE]
DISABLED -&gt; disable
$tlCfg-&gt;exec_cfg-&gt;enable_tree_testcases_colouring = ENABLED;
$tlCfg-&gt;exec_cfg-&gt;enable_tree_counters_colouring = ENABLED;</pre>
<p>控制当用户点击树形菜单上的test suite时发生在右边frame上的事，Disabling这种设置能帮助避免性能问题。</p>
<pre>ENABLED -&gt; 显示所有测试用例
DISABLED -&gt; 什么都不发生，要点击一个测试用例你需要点击它，默认
$tlCfg-&gt;exec_cfg-&gt;show_testsuite_contents = DISABLED;</pre>
<p>允许在旧的执行上编辑执行评论，注意，用户必须有测试用例的执行权力。</p>
<pre>ENABLED -&gt; user can edit execution notes, on old executions (Attention: user must have test case execution right)
DISABLED -&gt; no edit allowed [DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;edit_notes = DISABLED;</pre>
<p>过滤测试用例，&#8216;tester&#8217;角色的用户能根据测试执行分配查看。</p>
<pre>'all' -&gt; 所有测试用例.
'assigned_to_me' -&gt;测试用例分配给数据用户 [DEFAULT VALUE]
'assigned_to_me_or_free' -&gt; 分配给数据用户或未分配
$tlCfg-&gt;exec_cfg-&gt;view_mode-&gt;tester='assigned_to_me';</pre>
<p>过滤测试用例，&#8216;tester&#8217;角色的用户能根据测试执行分配执行。</p>
<pre>'all' -&gt; all test cases.
'assigned_to_me' -&gt; test cases assigned to the current user. [DEFAULT VALUE]
'assigned_to_me_or_free' -&gt; test cases assigned to logged user or not assigned
$tlCfg-&gt;exec_cfg-&gt;exec_mode-&gt;tester='assigned_to_me';</pre>
<p>用户过滤，在测试执行导航：</p>
<pre>'logged_user' -&gt; 调到当前用户
'none' -&gt; 默认无过滤应用[DEFAULT VALUE]
$tlCfg-&gt;exec_cfg-&gt;user_filter_default='none';</pre>
<p>通过优先级过滤TC，优先级根据公式定义的权限值：</p>
<pre>Priority = (urgency x importance)
&#8226; LOW = 所有测试用例优先级 &lt; LOW_Threshold &#8226; HIGH =所有测试用例优先级&gt;= HIGH_Threshold
&#8226; MEDIUM =所有测试用例优先级&gt;= LOW_Threshold AND 优先级 &lt; HIGH_Threshold $tlCfg-&gt;urgencyImportance_LOW_Threshold = 3;
$tlCfg-&gt;urgencyImportance_HIGH_Threshold = 6;</pre>
<h3>8.3、在执行页面添加一个新的结果类型</h3>
<p>1.需要用到的配置文件有：</p>
<pre>&#8226; cfg/const.inc.php
&#8226; custom_config.inc.php &lt;-- 创建它，如果它还不存在的话
&#8226; locale/en_GB/custom_strings.txt &lt;-- 创建它，最好不要编辑 strings.txt &#8226; gui/themes/theme_m2/css/testlink.css 配置过程： 1. 打开 cfg/const.inc.php ，找到字段: $tlCfg-&gt;results['status_code']</pre>
<p>2. 拷贝下面这几行到 custom_config.inc.php文件:</p>
<pre>$tlCfg-&gt;results['status_code'] = array (
"failed" =&gt; 'f',
"blocked" =&gt; 'b',
"passed" =&gt; 'p',
"not_run" =&gt; 'n',
"not_available" =&gt; 'x',
"unknown" =&gt; 'u',
"all" =&gt; 'all'
);
$tlCfg-&gt;results['status_label'] = array(
"all" =&gt; "test_status_all_status",
"not_run" =&gt; "test_status_not_run",
"passed" =&gt; "test_status_passed",
"failed" =&gt; "test_status_failed",
"blocked" =&gt; "test_status_blocked",
"not_available" =&gt; "test_status_not_available",
"unknown" =&gt; "test_status_unknown"
);
$tlCfg-&gt;results['status_label_for_exec_ui'] = array(
"passed" =&gt; "test_status_passed",
"failed" =&gt; "test_status_failed",
"blocked" =&gt; "test_status_blocked"
);
$tlCfg-&gt;results['default_status'] = "passed";</pre>
<p>3. 加入新状态，并保存:</p>
<pre>tcstatus_1 -&gt; code q
tcstatus_2 -&gt; code w</pre>
<p>4. custom_config.inc.php 文件变为:</p>
<pre>$tlCfg-&gt;results['status_code'] = array (
"failed" =&gt; 'f',
"blocked" =&gt; 'b',
"passed" =&gt; 'p',
"not_run" =&gt; 'n',
"not_available" =&gt; 'x',
"unknown" =&gt; 'u',
"all" =&gt; 'all',
"tcstatus_1" =&gt; 'q',
"tcstatus_2" =&gt; 'w'
);
$tlCfg-&gt;results['status_label'] = array(
"all" =&gt; "test_status_all_status",
"not_run" =&gt; "test_status_not_run",
"passed" =&gt; "test_status_passed",
"failed" =&gt; "test_status_failed",
"blocked" =&gt; "test_status_blocked",
"not_available" =&gt; "test_status_not_available",
"unknown" =&gt; "test_status_unknown",
"tcstatus_1" =&gt; "test_status_new_one",
"tcstatus_2" =&gt; "test_status_new_two"
);
$tlCfg-&gt;results['status_label_for_exec_ui'] = array(
"passed" =&gt; "test_status_passed",
"failed" =&gt; "test_status_failed",
"blocked" =&gt; "test_status_blocked",
"tcstatus_1" =&gt; "test_status_new_one",
"tcstatus_2" =&gt; "test_status_new_two"
);
$tlCfg-&gt;results['default_status'] = "blocked";</pre>
<p>5. 修改 css 如果你想要新的颜色的话.</p>
<pre>.tcstatus_1, div.tcstatus_1 {
color: black;
background: yellow;
}
.tcstatus_2, div.tcstatus_2 {
color: black;
background: orange;
}
div.tcstatus_1, div.tcstatus_2 {
margin: 8px;
padding: 6px;
text-align: center;
}</pre>
<h2>9、测试规约</h2>
<p>步骤和预期结果文本域的设置：</p>
<pre>'horizontal' - steps and expected results panes are side-by-side，水平
'vertical' - steps pane is above the expected results (default behaviour) 垂直
$g_spec_cfg-&gt;steps_results_layout = 'vertical';</pre>
<p>在测试规约导航的测试集过滤有效性：</p>
<pre>ENABLED -&gt; User will see a test suite filter (default behaviour)
DISABLED -&gt; no filter available
$g_spec_cfg-&gt;show_tsuite_filter = ENABLED;</pre>
<p>测试规约导航的刷新：</p>
<pre>ENABLED -&gt; 每次用户做了编辑操作，刷新
DISABLED -&gt; 树不会自动刷新，用户手工
$g_spec_cfg-&gt;automatic_tree_refresh = ENABLED;</pre>
<p>允许编辑一个测试用例的执行版本。</p>
<pre>ENABLED -&gt; user can edit executed Test case versions
DISABLED -&gt; editing of executed Test case versions is blocked. [DEFAULT VALUE]
$tlCfg-&gt;testcase_cfg-&gt;can_edit_executed = DISABLED;</pre>
<p>用户可以从测试计划移除一个测试用例的已执行版本（至少有一个测试结果存在）：</p>
<pre>$tlCfg-&gt;testcase_cfg-&gt;can_remove_executed = ENABLED;</pre>
<p>测试规约模板：<br>对于测试用例，用户初始需要定义的内容是：summary，steps,预期结果。每个对象的配置包含类型和值，类型：</p>
<pre>&#8226; 'none' -&gt;模板不被使用，默认是空的编辑域，[DEFAULT VALUE]
&#8226; 'string' -&gt; 值成员的值被分配给 FCK object
&#8226; 'string_id' -&gt; value member is used in a lang_get() call, and return value is assigned to FCK object. 配置 string_id 在文件 custom_strings.txt
&#8226; 'file' -&gt; value member is used as file name. The file is read and it's contents assigned to a text area component as input
$g_testcase_template-&gt;summary-&gt;type = 'string';
$g_testcase_template-&gt;summary-&gt;value = '
Objective: TBD
Precondition:
N/A
';
$g_testcase_template-&gt;steps-&gt;type = 'none';
$g_testcase_template-&gt;steps-&gt;value = '';
$g_testcase_template-&gt;expected_results-&gt;type = 'none';
$g_testcase_template-&gt;expected_results-&gt;value = '';
User can define the initial content of a new Test Suite description similar way:
$g_testsuite_template-&gt;details-&gt;type='file';
$g_testsuite_template-&gt;details-&gt;value='D:\w3\tl\head_20080103\logs\tsuite.txt';</pre>
<h2>10、附件</h2>
<p>$g_attachments-&gt;enabled = TRUE; （true or false）设置是否可以上传附件<br>储存类型可以是数据库也可以文件系统</p>
<pre>&#8226; TL_REPOSITORY_TYPE_DB =&gt; database
&#8226; TL_REPOSITORY_TYPE_FS =&gt; filesystem
$g_repositoryType = TL_REPOSITORY_TYPE_FS;（文件系统）
$g_repositoryPath = TL_ABS_PATH . "upload_area" . DS;（文件系统的存储路径，推荐改变路径，增强安全性）</pre>
<p>在存储系统中可以使用压缩，配置字段是：</p>
<pre>&#8226; TL_REPOSITORY_COMPRESSIONTYPE_NONE =&gt; no compression
&#8226; TL_REPOSITORY_COMPRESSIONTYPE_GZIP =&gt; gzip compression</pre>
<p>配置：</p>
<pre>$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_NONE;</pre>
<p>对每一个存储文件的默认最大size是1MB.</p>
<pre>define("TL_REPOSITORY_MAXFILESIZE_MB", 1);</pre>
<p>也可检查你的php设置 (通常默认为 2MBs)<br>用户需要为每一个附件加标题。<br>// TRUE -&gt; 上传的文件可以没有标题，默认为true<br>$g_attachments-&gt;allow_empty_title = TRUE;<br>此时你可以要求系统完成：</p>
<pre>// 'none'         -&gt; 写入db一个空标题
// 'use_filename' -&gt;使用文件名作为标题
//$g_attachments-&gt;action_on_save_empty_title='use_filename';
$g_attachments-&gt;action_on_save_empty_title='none';</pre>
<p>表示是用来作为下载时的链接描述的，如果标题为空，那么显示时系统需要完成的操作可以有：</p>
<pre>&#8226; 'show_icon' -&gt;字段$g_attachments-&gt;access_icon 被使用.
&#8226; 'show_label' -&gt; $g_attachments-&gt;access_string 的值被使用 .
$g_attachments-&gt;action_on_display_empty_title='show_icon';
$g_attachments-&gt;access_icon='<img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: medium none; BORDER-RIGHT: medium none" alt="" src="http://blog.ossxp.com/2010/01/417/'%20.%20TL_THEME_IMG_DIR%20.%20'/new_f2_16.png">';
$g_attachments-&gt;access_string="[*]";</pre>
<p>你可以设置上传文件的显示顺序：</p>
<pre>$g_attachments-&gt;order_by=" ORDER BY date_added DESC ";</pre>
<h2>11、需求支持</h2>
<p>需求功能对每一个测试产品水平可以是有效或无效的，作为管理员进入编辑测试产品页面，TL的一个特性就是需求管理。<br>需求的经典结构允许两种层次：SRS文档和需求列表。字段child_requirements_mgmt允许的需求的树形组织。</p>
<pre>&#8226; ENABLED: 允许N层树
&#8226; DISABLED: 仅一层
$tlCfg-&gt;req_cfg-&gt;child_requirements_mgmt = DISABLED;</pre>
<p>需求标识字符串（req_doc_id）必须是唯一的，</p>
<pre>&#8226; TRUE -&gt; req_doc_id 在整个 DB (system_wide)中是唯一的
&#8226; FALSE -&gt; req_doc_id 在SRS中是唯一的
$g_req_cfg-&gt;reqdoc_id-&gt;is_system_wide = FALSE;</pre>
<p>在创建了软件需求点后（srs），你可以选择为每个requirement创建test case（部件和分类也同时被创建）。<br>配置字段：$g_req_cfg</p>
<pre>$g_req_cfg-&gt;use_req_spec_as_testsuite_name = TRUE;
（FALSE -&gt; test cases被创建和分配给以$g_req_cfg-&gt;default_testsuite_name为名称的test suite，
TRUE  -&gt; REQuirement Specification 标题 被用来作为 testsuite 的名字）
$g_req_cfg-&gt;default_testsuite_name = "Test suite created by Requirement - Auto";</pre>
<h2>12、混合功能配置</h2>
<h3>12.1、数据导入限制</h3>
<pre>&#8226; file_uploads
&#8226; upload_max_filesize
&#8226; max_input_time
&#8226; memory_limit
&#8226; max_execution_time
&#8226; post_max_size
$tlCfg-&gt;import_max_size = '204800'; 最大的上传文件大小，单位bytes,你可以自定义，如果需要的话
$tlCfg-&gt;import_max_row = '10000'; 导出文件一行的最大size,10000最够了。</pre>
<h3>12.2、默认用户角色</h3>
<p>设置给新用户的默认角色。这个值被用来给这些用户：<br>从登录页面创建的<br>默认提供的<br>当原始角色被删除时</p>
<pre>$tlCfg-&gt;default_roleid = TL_ROLES_GUEST;
可能的值: TL_ROLES_TESTER, TL_ROLES_GUEST, TL_ROLES_NO_RIGHTS 和你定义的相似的值. See const.inc.php for more.</pre>
<h3>12.3．超时限制</h3>
<pre>$tlCfg-&gt;sessionInactivityTimeout = 60;</pre>
<p>不活动时的会话超时限制。他也被php.ini限制。低的那个被应用。</p>
<h3>12.4、Test Projects, Test Suites and Test Cases的重名</h3>
<p>$g_check_names_for_duplicates=TRUE<br>该配置将会执行下列操作：</p>
<pre>1. Test Project name 是唯一的
2. Test Suite Name 在 Test Project 中 是唯一的
3. Test Case Name 在 Category 里是唯一的</pre>
<p>当它的值是true时，你可以配置$g_action_on_duplicate_name来指定当重复的名称被发现的时候，系统将要执行的操作。选项包括：</p>
<pre>&#8226;  'allow_repeat' : 允许名称重复
&#8226;  'generate_new':产生一个新的名称，使用$g_prefix_name_for_copy的值和原始对象名称合并
&#8226;  'block' :返回一个错误</pre>
<p>举例：</p>
<pre>$tlCfg-&gt;name_duplicity_checking = 'generate_new';</pre>
<h3>12.5、字符串检查和转换</h3>
<p>允许WWW URLs和Email地址的转换到可点击链接，使用函数string_display_links()，例如通过自定义字段。<br>有效值是ENABLED/DISABLED.</p>
<pre>$tlCfg-&gt;html_make_links = ENABLED;</pre>
<p>Html标签定义：</p>
<pre>$tlCfg-&gt;html_valid_tags = 'p, li, ul, ol, br, pre, i, b, u, em';
$tlCfg-&gt;html_valid_tags_single_line = 'i, b, u, em';</pre>
<p>4.本地化<br>Testlink允许本地化时间，文本，数据。配置字段$g_default_language = &#8216;en_GB&#8217;;<br>TestLink登陆界面，此时登陆界面为英文，如果需要修改为中文则按以下步骤操作<br>打开config.inc.php文件<br>查找$g_default_language = &#8216;en_GB&#8217;;<br>修改为<br>$g_default_language = &#8216;zh_CN&#8217;;<br>则可以解决登陆界面汉化的问题<br>f.1、 String 本地化<br>对于每个本地化都存在一个目录，存放有标准的string.txt的文件。/locale/de_DE/strings.txt<br>/locale/de_DE/custom_strings.txt<br>/locale/en_GB/strings.txt<br>中文在locale/zh_cn<br>如果想要改变原翻译，但不想改动系统提供的源文件，那么，可以使用custom_strings.txt. 你需要放置文件在相应的本地化目录，使用与strings.txt相同的格式和规则。<br>说明和帮助页面在/gui/help/下。<br>f.2、 Date 和 Time 本地化<br>配置字段: $g_locales_date_format 和$g_locales_timestamp_format.<br>配置:</p>
<pre>$g_locales_date_format = array(
'en_GB' =&gt; "%d/%m/%Y", 'it_IT' =&gt; "%d/%m/%Y",
'es_AR' =&gt; "%d/%m/%Y", 'es_ES' =&gt; "%d/%m/%Y",
'de_DE' =&gt; "%d.%m.%Y", 'fr_FR' =&gt; "%d/%m/%Y",
'pt_BR' =&gt; "%d/%m/%Y" );
$g_locales_timestamp_format = array(
'en_GB' =&gt; "%d/%m/%Y %H:%M:%S",
'it_IT' =&gt; "%d/%m/%Y %H:%M:%S",
'es_AR' =&gt; "%d/%m/%Y %H:%M:%S",
'es_ES' =&gt; "%d/%m/%Y %H:%M:%S",
'de_DE' =&gt; "%d.%m.%Y %H:%M:%S",
'fr_FR' =&gt; "%d/%m/%Y %H:%M:%S",
'pt_BR' =&gt; "%d/%m/%Y %H:%M:%S", );</pre>
<p>如果以上数组是空的，下面的配置变量将被使用： $g_date_format 和$g_timestamp_format.<br>例如:</p>
<pre>$g_date_format ="%d/%m/%Y";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";</pre>
<p>f3、字符集</p>
<pre>$tlCfg-&gt;charset = 'UTF-8'</pre>
<p>f4、GUI 特殊字符<br>特殊字符被用来环绕文本，在你的用户接口。</p>
<pre>$tlCfg-&gt;gui-&gt;role_separator_open = '[';
$tlCfg-&gt;gui-&gt;role_separator_close = ']';</pre>
<p>分隔符，第一个&#8220;object : name&#8221; (for example: Test Plan : MyTestLink 1.0).第二个，&#8220;parent &#8211; child&#8221;.</p>
<pre>$tlCfg-&gt;gui_title_separator_1 = ' : ';
$tlCfg-&gt;gui_title_separator_2 = ' - ';</pre>
<p>每个测试用例都有一个唯一的标识码。你可以设置和使用&#8220;external ID&#8221;作为标识符代替它。The &#8220;external ID&#8221; is composed from a Test project</p>
<pre>prefix, a separator defined below and a number related to a parent Test Suite.
$tlCfg-&gt;testcase_cfg-&gt;glue_character = '-';</pre>
<p>需要配置的字段</p>
<pre>Appendix A: Recommended configuration parameters
There is a list of parameters that users modify in the most of cases:
$g_smtp_host
$g_tl_admin_email
$g_from_email
$g_return_path_email
$g_interface_bugs
$tlCfg-&gt;document_generator-&gt;company_name
$tlCfg-&gt;document_generator-&gt;company_copyright
$tlCfg-&gt;document_generator-&gt;confidential_msg
$tlCfg-&gt;company_logo
$tlCfg-&gt;fckeditor_default_toolbar
$g_default_language
$tlCfg-&gt;api_enabled</pre>
<p>OK,好好利用的你的TestLink吧</p>
</div>
<img src ="http://www.cnitblog.com/201/aggbug/65448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-04-19 17:18 <a href="http://www.cnitblog.com/201/archive/2010/04/19/65448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Centos 5.4+subversion+apache+trac整合配置资源包</title><link>http://www.cnitblog.com/201/archive/2010/03/14/64633.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sun, 14 Mar 2010 09:50:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/03/14/64633.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/64633.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/03/14/64633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/64633.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/64633.html</trackback:ping><description><![CDATA[centos 5.4 DVD官方获得<br>subversion 以下地址获得 <a  href="http://summersoft.fay.ar.us/pub/subversion/latest/">http://summersoft.fay.ar.us/pub/subversion/latest/</a><br><br>trac获得&nbsp; <a  href="http://trac.edgewall.org/wiki/TracGuide">http://trac.edgewall.org/wiki/TracGuide</a><br><br>如果没有安装subversion-python 会造成trac 建库时提示无法访问svn库 <em>ImportError</em>: <em>No module named svn</em>，无法建索引，或警告svn bindings警告<br>Warning:<br><br>You should install the SVN bindings<br><br>---------------------------------------------------------------------<br>Project environment for 'My Project' created.<br>Python 2.4.3 (#1, Sep&nbsp; 3 2009, 15:37:12)<br>[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2<br>Type "help", "copyright", "credits" or "license" for more information.<br>&gt;&gt;&gt; import svn<br>Traceback (most recent call last):<br>&nbsp; File "&lt;stdin&gt;", line 1, in ?<br>ImportError: No module named svn<br>&gt;&gt;&gt;<br><br><br><br><br><img src ="http://www.cnitblog.com/201/aggbug/64633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-03-14 17:50 <a href="http://www.cnitblog.com/201/archive/2010/03/14/64633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>svn在linux下的使用（svn命令）</title><link>http://www.cnitblog.com/201/archive/2010/03/10/64577.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Wed, 10 Mar 2010 07:24:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/03/10/64577.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/64577.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/03/10/64577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/64577.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/64577.html</trackback:ping><description><![CDATA[<div id="art" width="100%" style="margin: 15px;">
<p><strong> 1、</strong> 将文件checkout到本地目录</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><strong> svn checkout</strong>  path（path是服务器上的目录）<br>
&nbsp;&nbsp;  例如：svn checkout svn://192.168.1.1/pro/domain<br>
&nbsp;&nbsp;&nbsp;  简写：svn co</div>
<p><strong> 2、</strong> 往版本库中添加新的文件</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn </strong> <strong> add</strong>  file<br>
&nbsp;&nbsp;  例如：svn add test.php(添加test.php)<br>
&nbsp;&nbsp;  svn add *.php(添加当前目录下所有的php文件)</div>
<p><strong> 3、</strong> 将改动的文件提交到版本库</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p>&nbsp;&nbsp;<strong> svn commit</strong>  -m "LogMessage" [-N] [--no-unlock] PATH<img src="http://www.blogjava.net/Images/dot.gif">(如果选择了保持锁，就使用--no-unlock开关)<br>
&nbsp;&nbsp;  例如：svn commit -m "add test file for my test" test.php<br>
&nbsp;&nbsp;&nbsp;  简写：svn ci</p>
</div>
<p><strong> 4、</strong> 加锁/解锁</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn lock</strong>  -m "LockMessage" [--force] PATH<img src="http://www.blogjava.net/Images/dot.gif"><br>
&nbsp;&nbsp;  例如：svn lock -m "lock test file" test.php<br>
<strong> svn unlock</strong>  PATH</div>
<p><strong> 5、</strong> 更新到某个版本</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn update -r </strong> m path<br>
&nbsp;&nbsp;  例如：<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  svn update如果后面没有目录，默认将当前目录以及子目录下的所有文件都更新到最新版本。<br>
&nbsp;&nbsp;&nbsp;&nbsp;  svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)<br>
&nbsp;&nbsp;&nbsp;&nbsp;  svn update test.php(更新，于版本库同步。如果在提交的时候提示过期的话，是因为<strong> 冲突，需要先update，修改文件</strong> ，然后清除<strong> svn resolved</strong> ，最后再提交commit)<br>
&nbsp;&nbsp;  简写：svn up</div>
<p><strong> 6、</strong> 查看文件或者目录状态</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;1）<strong> svn status</strong>  path<img src="http://www.blogjava.net/Images/dot.gif">（目录下的文件和子目录的状态，正常状态不显示）<br>
&nbsp;&nbsp;  【?：不在svn的控制中；M：内容被修改；C：发生冲突；A：预定加入到版本库；K：被锁定】<br>
&nbsp;&nbsp;2）<strong> svn status -v</strong>  path<img src="http://www.blogjava.net/Images/dot.gif">(显示文件和子目录状态)<br>
&nbsp;&nbsp;  第一列保持相同，第二列显示工作版本号，第三和第四列显示最后一次修改的版本号和修改人。<br>
&nbsp;&nbsp;  注：svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的，原因是svn在本地的.svn中保留了本地版本的原始拷贝。<br>
简写：svn st</div>
<p><strong> 7、</strong> 删除文件</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn delete</strong>  path -m "delete test fle"<br>
&nbsp;&nbsp;  例如：svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"<br>
&nbsp;&nbsp;&nbsp;  或者直接svn delete test.php 然后再svn ci -m 'delete test file&#8216;，推荐使用这种<br>
简写：svn (del, remove, rm)</div>
<p><strong> 8、</strong> 查看日志</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn log</strong>  path<br>
&nbsp;&nbsp;  例如：svn log test.php 显示这个文件的所有修改记录，及其版本号的变化</div>
<p><strong> 9、</strong> 查看文件详细信息</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn info</strong>  path<br>
&nbsp;&nbsp;  例如：svn info test.php</div>
<p><strong> 10、</strong> 比较差异</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn diff</strong>  path(将修改的文件与基础版本比较)<br>
&nbsp;&nbsp;  例如：svn diff test.php<br>
<strong> svn diff</strong>  -r m:n path(对版本m和版本n比较差异)<br>
&nbsp;&nbsp;  例如：svn diff -r 200:201 test.php<br>
&nbsp;&nbsp;  简写：svn di</div>
<p><strong> 11、</strong> 将两个版本之间的差异合并到当前文件</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn merge -r</strong>  m:n path<br>
&nbsp;&nbsp;  例如：svn merge -r 200:205 test.php（将版本200与205之间的差异合并到当前文件，但是一般都会产生冲突，需要处理一下）</div>
<p><strong> 12、</strong> SVN 帮助</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn help<br>
svn help ci</strong> </div>
<p>------------------------------------------------------------------------------</p>
<p>以上是常用命令，下面写几个不经常用的</p>
<p>------------------------------------------------------------------------------</p>
<p><strong> 13、</strong> 版本库下的文件和目录列表</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">&nbsp;&nbsp;<strong> svn list </strong> path<br>
&nbsp;&nbsp;  显示path目录下的所有属于版本库的文件和目录<br>
简写：svn ls</div>
<p> </p>
<p><strong> 14、</strong> 创建纳入版本控制下的新目录</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p><strong> svn mkdir</strong> : 创建纳入版本控制下的新目录。<br>
用法: 1、mkdir PATH...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  2、mkdir URL...<br>
创建版本控制的目录。<br>
1、每一个以工作副本 PATH 指定的目录，都会创建在本地端，并且加入新增<br>
&nbsp;&nbsp;&nbsp;&nbsp;  调度，以待下一次的提交。<br>
2、每个以URL指定的目录，都会透过立即提交于仓库中创建。<br>
在这两个情况下，所有的中间目录都必须事先存在。</p>
</div>
<p> </p>
<p><strong> 15、</strong> 恢复本地修改</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p><strong> svn revert</strong> : 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:<br>
用法: revert PATH...<br>
注意: 本子命令不会存取网络，并且会解除冲突的状况。但是它不会恢复<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  被删除的目录</p>
</div>
<p> </p>
<p><strong> 16、</strong> 代码库URL变更</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p><strong> svn switch (sw):</strong>  更新工作副本至不同的URL。<br>
用法: 1、switch URL [PATH]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  2、switch --relocate FROM TO [PATH...]</p>
<p>1、更新你的工作副本，映射到一个新的URL，其行为跟&#8220;svn update&#8221;很像，也会将<br>
&nbsp;&nbsp;&nbsp;&nbsp;  服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的<br>
&nbsp;&nbsp;&nbsp;&nbsp;  方法。<br>
2、改写工作副本的URL元数据，以反映单纯的URL上的改变。当仓库的根URL变动 <br>
&nbsp;&nbsp;&nbsp;  (比如方案名或是主机名称变动)，但是工作副本仍旧对映到同一仓库的同一目录时使用<br>
&nbsp;&nbsp;&nbsp;  这个命令更新工作副本与仓库的对应关系。</p>
</div>
<p> </p>
<p><strong> 17、</strong> 解决冲突</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p><strong> svn resolved:</strong>  移除工作副本的目录或文件的&#8220;冲突&#8221;状态。<br>
用法: resolved PATH...<br>
注意: 本子命令不会依语法来解决冲突或是移除冲突标记；它只是移除冲突的<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  相关文件，然后让 PATH 可以再次提交。</p>
</div>
<p> </p>
<p><strong> 18、</strong> 输出指定文件或URL的内容。</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;">
<p><strong> svn </strong> <strong> cat</strong>  目标[@版本]...如果指定了版本，将从指定的版本开始查找。<br>
svn cat -r PREV filename &gt; filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)</p>
</div>
</div>
<br><img src ="http://www.cnitblog.com/201/aggbug/64577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-03-10 15:24 <a href="http://www.cnitblog.com/201/archive/2010/03/10/64577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bugzilla 错误 Bugzilla Installation Problem -- Can't locate DateTime/Locale.pm</title><link>http://www.cnitblog.com/201/archive/2010/01/18/63800.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 18 Jan 2010 02:22:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/01/18/63800.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/63800.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/01/18/63800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/63800.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/63800.html</trackback:ping><description><![CDATA[<pre>Can't locate Date/Parse.pm in @INC (@INC contains: . lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at Bugzilla/Util.pm line 51.<br><br><br><br><span><strong class="highlight">To</strong> <strong class="highlight">test</strong>, I ran <strong class="highlight">the</strong> perl script <strong class="highlight">testserver</strong>.pl and am getting following<br></span><br><span>error message:<br></span><br><span>&nbsp;<br></span><br><span><strong class="highlight">Can</strong>'<strong class="highlight">t</strong> <strong class="highlight">locate</strong> <strong class="highlight">DateTime</strong>/<strong class="highlight">Locale</strong>.<strong class="highlight">pm</strong> <strong class="highlight">in</strong> @<strong class="highlight">INC</strong> (@<strong class="highlight">INC</strong> <strong class="highlight">contains</strong>: .<br></span><br><span><strong class="highlight">lib</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong> <strong class="highlight">lib</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.7/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.6/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">5</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong> /<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.7<br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.6 /<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">5</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">site_perl</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.7/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.6/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">5</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong> /<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.7<br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.6 /<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">5</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/vendor_perl /<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong>/<strong class="highlight">i386</strong>-<strong class="highlight">linux</strong>-<strong class="highlight">thread</strong>-<strong class="highlight">multi</strong><br></span><br><span>/<strong class="highlight">usr</strong>/<strong class="highlight">lib</strong>/<strong class="highlight">perl5</strong>/<strong class="highlight">5</strong>.<strong class="highlight">8</strong>.<strong class="highlight">8</strong>) at <strong class="highlight">lib</strong>/<strong class="highlight">DateTime</strong>.<strong class="highlight">pm</strong> line 46.<br></span><br><span>BEGIN failed--compilation aborted at <strong class="highlight">lib</strong>/<strong class="highlight">DateTime</strong>.<strong class="highlight">pm</strong> line 46.<br></span><br><span>Compilation failed <strong class="highlight">in</strong> require at Bugzilla/Util.<strong class="highlight">pm</strong> line <strong class="highlight">53</strong>.<br></span><br><span>BEGIN failed--compilation aborted at Bugzilla/Util.<strong class="highlight">pm</strong> line <strong class="highlight">53</strong>.<br></span><br><span>Compilation failed <strong class="highlight">in</strong> require at Bugzilla/Hook.<strong class="highlight">pm</strong> line 26.<br></span><br><span>BEGIN failed--compilation aborted at Bugzilla/Hook.<strong class="highlight">pm</strong> line 26.<br></span><br><span>Compilation failed <strong class="highlight">in</strong> require at Bugzilla/Config.<strong class="highlight">pm</strong> line 37.<br></span><br><span>BEGIN failed--compilation aborted at Bugzilla/Config.<strong class="highlight">pm</strong> line 37.<br></span><br><span>Compilation failed <strong class="highlight">in</strong> require at Bugzilla.<strong class="highlight">pm</strong> line 38.<br></span><br><span>BEGIN failed--compilation aborted at Bugzilla.<strong class="highlight">pm</strong> line 38.<br></span><br><span>Compilation failed <strong class="highlight">in</strong> require at ./<strong class="highlight">testserver</strong>.pl line 24.<br></span><br><span>BEGIN failed--compilation aborted at ./<strong class="highlight">testserver</strong>.pl line 24.<br></span><br></pre>
<p>
For help, please send mail to the webmaster (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#111;&#111;&#116;&#64;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;">root@localhost</a>), giving this error message
and the time and date of the error.
</p>
<br>&nbsp;运行以下命令解决。<br><br>&nbsp;&nbsp; /usr/bin/perl install-module.pl List::MoreUtils<br>&nbsp;&nbsp; /usr/bin/perl install-module.pl DateTime::Locale
<br><br>  <img src ="http://www.cnitblog.com/201/aggbug/63800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-01-18 10:22 <a href="http://www.cnitblog.com/201/archive/2010/01/18/63800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 最近网上 出现的 Serv-U 8/9.0/7 破解/完美版下载 问题</title><link>http://www.cnitblog.com/201/archive/2009/11/24/62794.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Tue, 24 Nov 2009 04:53:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2009/11/24/62794.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/62794.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2009/11/24/62794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/62794.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/62794.html</trackback:ping><description><![CDATA[呵呵，发现都是没有真正破解的，serv u 下载安装后，破解文件一般都隔天后反弹。<br><br>建议大家还是去安装serv-u 6的吧。<br><br><img src ="http://www.cnitblog.com/201/aggbug/62794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2009-11-24 12:53 <a href="http://www.cnitblog.com/201/archive/2009/11/24/62794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>远程桌面连接端口号修改工具</title><link>http://www.cnitblog.com/201/archive/2009/03/20/55583.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Fri, 20 Mar 2009 06:55:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2009/03/20/55583.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/55583.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2009/03/20/55583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/55583.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/55583.html</trackback:ping><description><![CDATA[推荐一个好工具下载:<br><a  href="http://www.testlink.org.cn/downloads/RemoteDesktopConnection3389.exe">http://www.testlink.org.cn/downloads/RemoteDesktopConnection3389.exe</a><br><br><img src ="http://www.cnitblog.com/201/aggbug/55583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2009-03-20 14:55 <a href="http://www.cnitblog.com/201/archive/2009/03/20/55583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关注Lenovo ThinkPad T400 LED（三星orLG)显示屏问题处理</title><link>http://www.cnitblog.com/201/archive/2009/03/07/55170.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sat, 07 Mar 2009 05:39:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2009/03/07/55170.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/55170.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2009/03/07/55170.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/55170.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/55170.html</trackback:ping><description><![CDATA[今日国内外很多T400的朋友都在讨论LED屏幕问题，总的来说都希望是LG的屏幕。难道真的三星的LED屏幕存在缺陷。大家可以看国外报道，但不能考证是否是真的，因为作者没有给几个电脑同角度的对比。<br><a  href="http://aphnetworks.com/reports/lenovo_customer_service_hell_as_youve_heard">http://aphnetworks.com/reports/lenovo_customer_service_hell_as_youve_heard</a><br><br>不巧的是从08年12月到09年2月都是美国通过CPP购买的T400多数是三星的LED，希望大家看看自己的屏幕是否真的存在这样的问题。<br><br>09年3月份开始，美国联想网站取消了T400 配置LED屏幕的选项，所以近期网站购买只能选择LCD屏幕，没有LED选择，这是否是一个信号，是LED确实不过关，是个产品缺陷而暂停了LED的供货，还是其他原因？不可知。<br><br>所以大家还是尽快检查一下自己的LED屏幕吧，如果真的是产品缺陷，Lenovo是否会考虑召回呢？<br><br><br><br><img src ="http://www.cnitblog.com/201/aggbug/55170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2009-03-07 13:39 <a href="http://www.cnitblog.com/201/archive/2009/03/07/55170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今日在美国联想网站通过CPP购买thinkpad T400过程</title><link>http://www.cnitblog.com/201/archive/2009/02/11/54471.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Wed, 11 Feb 2009 14:16:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2009/02/11/54471.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/54471.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2009/02/11/54471.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/54471.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/54471.html</trackback:ping><description><![CDATA[2009 lenovo thinkpad T400 购买过程<br><br>由于2008圣诞没有下单，今年春节刚过就考虑赶快购买一个Thinkpad T400,查询了国内的销售，T400行货都在万元以上，无奈只能选择在美国网站购买，然后再请朋友带回来。<br><br>首先是到www.dealsea.com和http://www.fatwallet.com/看是否有最新的折扣码或返款政策。 主要是那这里的价格和Lenovo cpp上的价格对比，提醒大家一般CPP的价格会最优惠，而且CPP有时候也有折扣码可用的。只是不能使用fatwallet上的码混用，所以你不能得到返款。<br><br>比较一番之后，还是CPP的价格最低，2009年近期能用的也只有familyandfriends这个号进入了。第一页可以找到
<a href="http://shoplenovo.i2.com/SEUILibrary/controller/special-offers.workflow:ShowPromo?LandingPage=/All/US/Landing_pages/Affinity/2007/12_ecoupon_deals_epp" onclick="'s_objectID=" http:="" shoplenovo.i2.com="" seuilibrary="" controller="" special-offers.workflow:showpromo?landingpage="/Al_3&quot;;return&quot;" this.s_oc?this.s_oc(e):true="" class="fbox">
<strong>Additional savings </strong></a><br>
Save today with special offers and eCoupons. Hurry limited time offers.<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="padding-top: 10px; padding-left: 10px; padding-right: 10px;" valign="top" align="left"><a href="http://shoplenovo.i2.com/SEUILibrary/controller/e/cpp/StdAffinityPortal/en_US/special-offers.workflow:ShowPromo?LandingPage=/All/US/Portals/Products" onclick="'s_objectID=" http:="" shoplenovo.i2.com="" seuilibrary="" controller="" e="" cpp="" stdaffinityportal="" en_us="" special-offers.work_103="" ;return="" this.s_oc?this.s_oc(e):true="">Three day sale &#8211; <span class="price">save an additional 15%</span> on ThinkPad T Series notebooks, <span class="price">7%</span> on IdeaPad U330 and Y Series notebooks, <span class="price">5%</span>
            on ThinkPad notebooks (excluding T Series and SL400 and SL500 notebooks
            with integrated graphics), ThinkCentre desktops, IdeaCentre desktops,
            ThinkStation workstations, IdeaPad U110 notebooks, Lenovo H Series
            desktops, Lenovo N500 notebooks and all accessories with eCoupon <span style="color: #339900;"><strong>USETHREEDAYSALE</strong></span> through February 12.</a></td>
        </tr>
        <!-- end offers row 1 -->
        <!-- didviders -->
        <tr>
            <td style="padding-left: 10px; padding-right: 10px;" valign="middle" align="center">
            <table width="100%" border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td colspan="3"><img src="http://www.lenovo.com/i/c.gif" alt="" class="display-img" width="1" height="10"></td>
                    </tr>
                    <tr>
                        <td width="39"><img src="http://www.lenovo.com/shop/americas/content/img_lib/misc/blue_fade_divider_left_39px.gif" width="39" height="1"></td>
                        <td bgcolor="#c7d3df"><img src="http://www.lenovo.com/i/c.gif" alt="" class="display-img" width="1" height="1"></td>
                        <td width="39"><img src="http://www.lenovo.com/shop/americas/content/img_lib/misc/blue_fade_divider_right_39px.gif" width="39" height="1"></td>
                    </tr>
                    <tr>
                        <td colspan="3"><img src="http://www.lenovo.com/i/c.gif" alt="" class="display-img" width="1" height="10"></td>
                    </tr>
                </tbody>
            </table>
            </td>
            <td class="bg-light-blue-site" valign="top" width="1"><img src="http://www.lenovo.com/i/c.gif" alt="" width="1" border="0" height="1"></td>
            <td style="padding-left: 10px; padding-right: 10px;" valign="middle" align="center">
            <table width="100%" border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td colspan="3"><img src="http://www.lenovo.com/i/c.gif" alt="" class="display-img" width="1" height="10"></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br><br>直接进入CPP，配置好T400，然后进入cart，到了最后一步，输入或激活折扣码。最后会算出大概折扣后的价格。<br>选择信用卡支付（我用的招商银行标准信用卡：））据说招商的成功几率比较高。付款，<br><br>bill地址和收货地址一定要用美国朋友的地址，我用的朋友公司的地址，方便朋友可以替我收货。收货地址好像有些限制不能使用酒店什么的，大家可以去查。<br><br>网上有朋友提醒bill地址和收货地址最好用一样的，使用我都填写朋友的地址和朋友的名字。<br>信用卡是我国内自己的：）<br><br>漫长的状态是in process，里现在大概有5个工作日了，今天下午收到邮件提示shiped，估计订单没被取消。<br><br>接下来该是看小本环球旅行了，邮件说24小时内会有UPS的查询码，还没收到，先睡觉了：）<br><br><br><br><br>  <img src ="http://www.cnitblog.com/201/aggbug/54471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2009-02-11 22:16 <a href="http://www.cnitblog.com/201/archive/2009/02/11/54471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>联想免费U盘 5G lenovo u-disk</title><link>http://www.cnitblog.com/201/archive/2008/12/14/52611.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Sun, 14 Dec 2008 13:53:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/12/14/52611.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/52611.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2008/12/14/52611.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/52611.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/52611.html</trackback:ping><description><![CDATA[<li><span class=Bold>5G</span>超大容量免费存储空间
<li>批量文件传输，支持多级目录和断点续传
<li>用户完全控制数据访问权限
<li>多种途径实现数据共享
<li>浏览器内支持文件的拖拽、移动
<li>各种音视频文件的在线预览 </li>
<li></li>
<p>申请地址： <a href="http://www.lenovodata.com/account/iregisterdisplay/2539116">注册联想5G免费U盘</a><br><a href="http://www.lenovodata.com/account/iregisterdisplay/2539116">http://www.lenovodata.com/account/iregisterdisplay/2539116</a></p>
<img src ="http://www.cnitblog.com/201/aggbug/52611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-12-14 21:53 <a href="http://www.cnitblog.com/201/archive/2008/12/14/52611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百种ADSL路由器的初始默认密码大全</title><link>http://www.cnitblog.com/201/archive/2008/10/06/49892.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 06 Oct 2008 05:52:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/10/06/49892.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/49892.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2008/10/06/49892.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/49892.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/49892.html</trackback:ping><description><![CDATA[<p>以下这些都是一些ADSL设奋的出厂时的默认初始IP，用户名和密码，是要调试这些设奋时必须要知道的东西。 </p>
<p>一般调试这些设奋有三种方法： </p>
<p>一种是最常见的WEB方法，就是在浏览器中填入设奋的IP，如QX1680，就是在浏览器地址栏输入IP地址：10.0.0.2，出现提示栏后，输入用户名admin，密码qxcommsupport,就可以管理员设置界面了。最常见和最简单的就是这种方法。 </p>
<p>第二种方法就是用TELNET的方法，telnet IP,如早期的合勤642，方法telnet 192.168.1.1,然后输入密码1234,就可以进入全英文的字符界面了。 </p>
<p>第三种方法就是用厂商自带的配置程序来进入配置界面，如CyberLink 6307/6309KG 它使用在随Cybrlink 6307/6309KG带的光盘中DSLCom.exe， 出厂时默认值：路由IP地址 :1 92.168.1.1密码 : stm，由于这种方法没有前两种方法方便，所以现在的低端产品比较少采用了。 绝大部分产品的调试都是要先通过产品自带的双绞线连接设奋后，把本机网卡的IP设置成跟该设奋同一网段，再进行配置，如设奋被改了默认的IP或者密码，大部分都可以通过复位来恢复出厂默认值。最常用也是最有用的方法就是把设奋断电后，一直按住复位键，然后通电，持续一小段时间后就可以恢复。 </p>
<p><br>上海大亚科技 大亚108 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：admin 密码：password </p>
<p>艾玛 701g <br>192.168.101.1 192.168.0.1 <br>用户名：admin 密码：admin <br>用户名：SZIM 密码：SZIM </p>
<p>艾玛701H <br>192.168.1.1 10.0.0.2 <br>用户名：admin 密码：epicrouter </p>
<p>实达2110EH ROUTER <br>192.168.10.1 <br>用户名：user 密码：password <br>用户名：root 密码：grouter </p>
<p>神州数码/华硕： <br>用户名：adsl 密码：adsl1234 <br>全向： <br>用户名：root 密码：root </p>
<p>普天： <br>用户名：admin 密码：dare </p>
<p>e-tek <br>用户名:admin 密码:12345 </p>
<p>zyxel <br>用户名:anonymous 密码:1234 </p>
<p>北电 <br>用户名:anonymous 密码:12345 </p>
<p>大恒 <br>用户名：admin 密码：admin </p>
<p>大唐 <br>用户名：admin 密码：1234 </p>
<p>斯威特 <br>用户名：root 密码：root <br>用户名：user 密码：user <br>中兴 <br>用户名：adsl 密码：adsl831 </p>
<p>viking <br>帐号：adsl 密码：adsl1234 <br>帐号：root 密码：grouter </p>
<p><br>华为mt800 <br>帐号：admin 密码：admin</p>
<p>home gateway <br>帐号：user 密码：password <br>帐号：admin 密码：epicrouter </p>
<p><br>全向QL1680 <br>IP地址10.0.0.2 <br>用户名：admin，密码：qxcomm1680， <br>管理员密码：qxcommsupport。 </p>
<p>全向QL1880 <br>IP地址192.168.1.1 <br>用户名：root，密码：root </p>
<p>全向QL1688 <br>IP地址10.0.0.2 <br>用户名为admin；密码为qxcomm1688 </p>
<p>TP-LINK TD-8800 <br>192.168.1.1 <br>户名admin,密码admin </p>
<p>合勤zyxel 642 <br>在运行输入telnet 192.168.1.1 <br>密码1234 </p>
<p>Ecom ED-802EG <br>192.168.1.1 <br>用户名root <br>密码root </p>
<p>神州数码6010RA <br>192.168.1.1　 <br>用户名ADSL <br>密码ADSL1234 </p>
<p>华为SmartAX MT800 <br>192.168.1.1 <br>用户名ADMIN <br>密码ADMIN <br>恢复默认配置的方法有两种，一种是连续按MODEM背后的RESET键三次，另一种是在配置菜单的SAVE&amp;REBOOT里选择恢复默认配置。 </p>
<p>伊泰克 <br>IP：192.168.1.1 <br>用户名：supervisor <br>密码：12345 </p>
<p>华硕 <br>IP：192.168.1.1 <br>用户名：adsl <br>密码：adsl1234 </p>
<p>阿尔卡特 <br>192.168.1.1 <br>一般没有密码 </p>
<p>同维DSL699E <br>192.168.1.1 <br>用户名：ROOT <br>密码：ROOT </p>
<p>大亚DB102 <br>192.168.1.1 <br>用户名：admin <br>密码：dare <br>高级设置://192.168.1.1/doc/index1.htm </p>
<p>WST RT1080 <br>192.168.0.1 <br>username:root <br>password:root </p>
<p>WST ART18CX <br>10.0.0.2 <br>username:admin <br>password:conexant <br>username:user <br>password:password </p>
<p>泛德　 <br>用户名：admin <br>密码：conexant </p>
<p>东信Ea700 <br>192.168.1.1 <br>用户名：空 <br>密码：password </p>
<p>broadmax hsa300a <br>192.168.0.1 <br>username:broadmax <br>password:broadmax </p>
<p>长虹ch-500E <br>192.168.1.1 <br>username:root <br>password:root </p>
<p>重庆普天CP ADSL03 <br>192.168.1.1 <br>username:root <br>password:root </p>
<p>台湾突破EA110 <br>RS232:38400 <br>192.168.7.1 <br>usernameSL <br>pswSL </p>
<p>etek-td ADSL_T07L006.0 <br>192.168.1.1 <br>User Name: supervisor <br>Password: 12345 <br>忘记密码的解决办法： 使用超级终端的Xmodem方式重写Vxworks.dlf，密码恢复成：12345</p>
<p>GVC DSL-802E/R3A <br>10.0.0.2 <br>username:admin <br>password:epicrouter <br>username:user <br>password:password </p>
<p>科迈易通km300A-1 <br>192.168.1.1 <br>username: <br>password:password </p>
<p>科迈易通km300A-G <br>192.168.1.1 <br>username:root <br>password:root </p>
<p>科迈易通km300A-A <br>192.168.1.1 <br>username:root or admin <br>password:123456 </p>
<p>sunrise SR-DSL-AE <br>192.168.1.1 <br>username:admin <br>password:0000 </p>
<p>sunrise DSL-802E_R3A <br>10.0.0.2 <br>username:admin <br>password:epicrouter <br>username:user <br>password:password </p>
<p>UTStar ut-300R <br>192.168.1.1 <br>username:root or admin <br>password:utstar </p>
<p>中达通CT-500 <br>192.168.1.1 <br>用户名：root <br>密码：12345 </p>
<p>中兴adsl841 <br>默认IP：192.168.1.1 <br>UserName：admin <br>Password：private </p>
<p>成都天逸 <br>用户名：admin <br>密码：epicrouter </p>
<p>上海中达 <br>用户名：（随意） <br>密码：12345 </p>
<p>全向QL1680 <br>IP地址10.0.0.2 <br>用户名是admin <br>密码是qxcomm1680 <br>管理员密码是 qxcommsupport </p>
<p>全向QL1880 <br>IP地址192.168.1.1 <br>用户名是root <br>密码是root </p>
<p>全向QL1688 <br>IP地址10.0.0.2 <br>用户名为admin； <br>密码为qxcomm1688 </p>
<p>CyberLink 6307/6309KG <br>它使用在随Cyberlink6307/6309KG带的光盘中DSLCom.exe， <br>路由IP地址 : 192.168.1.1 <br>密码 : stm </p>
<p>TP-LINK TD-8800 <br>192.168.1.1, <br>户名admin, <br>密码admin. </p>
<p>合勤zyxel 642 <br>在运行输入telnet 192.168.1.1 <br>密码1234 <br>一直按住机身后面的的RESET复位键然后开机，保持几十秒就可以恢复出厂默认 值。 </p>
<p>Ecom ED-802EG <br>192.168.1.1 <br>用户名root <br>密码root </p>
<p>神州数码6010RA <br>192.168.1.1　 <br>用户名为ADSL <br>密码为ADSL1234 </p>
<p>华为SmartAX MT800 <br>IP是192.168.1.1 <br>用户名ADMIN <br>密码ADMIN <br>恢复默认配置的方法有两种，一种是连续按MODEM背后的RESET键三 次，另一种是在配置菜单的SAVE&amp;REBOOT里选择恢复默认配置。</p>
<p><br>伊泰克 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：supervisor <br>密码：12345 </p>
<p>华硕 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：adsl <br>密码：adsl1234 </p>
<p>阿尔卡特 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>一般没有密码 </p>
<p>同维DSL699E <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：ROOT <br>密码：ROOT </p>
<p>大亚DB102 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：admin <br>密码：dare <br>高级设置界面：<a href="http://192.168.1.1/">http://192.168.1.1/</a> doc/index1.htm <br>WST的RT1080 <br><a href="http://192.168.0.1/">http://192.168.0.1/</a> <br>username:root <br>password:root </p>
<p>WST的ART18CX <br><a href="http://10.0.0.2/">http://10.0.0.2/</a> <br>username:admin <br>password:conexant <br>username:user <br>password ：assword </p>
<p>全向qxcomm1688 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>高端设置密码是：qxcommsuport </p>
<p>全向qxcomm1680 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>登陆ADSL的密码是:qxcomm1680 </p>
<p>实达 <br>V3.2　root <br>root <br>V5.4　root <br>grouter </p>
<p>泛德 <br>admin <br>conexant </p>
<p>东信Ea700 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>用户名：空 <br>密码：password </p>
<p>broadmax的hsa300a <br><a href="http://192.168.0.1/">http://192.168.0.1/</a> <br>username:broadmax <br>password:broadmax </p>
<p>长虹ch-500E <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:root <br>password:root </p>
<p>重庆普天CP ADSL03 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:root <br>password:root </p>
<p>台湾突破EA110 <br>RS232:38400 <br><a href="http://192.168.7.1/">http://192.168.7.1/</a> <br>username SL <br>psw SL </p>
<p>etek-td的ADSL_T07L006.0 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>User Name: supervisor <br>Password: 12345 <br>忘记密码的解决办法： <br>使用超级终端的Xmodem方式重写Vxworks.dlf，密码恢复成：12345<br>GVC的DSL-802E/R3A <br><a href="http://10.0.0.2/">http://10.0.0.2/</a> <br>username:admin <br>password:epicrouter <br>username:user <br>password assword </p>
<p>科迈易通km300A-1 <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username: <br>password assword </p>
<p>科迈易通km300A-G <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:root <br>password:root </p>
<p>科迈易通km300A-A <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:root or admin <br>password:123456 </p>
<p>sunrise的SR-DSL-AE <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:admin <br>password:0000 </p>
<p>sunrise的DSL-802E_R3A <br><a href="http://10.0.0.2/">http://10.0.0.2/</a> <br>username:admin <br>password:epicrouter <br>username:user <br>password assword </p>
<p>UTStar的ut-300R <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>username:root or admin <br>password:utstar </p>
<p>格林耐特 GRT1500R GS8120/GS3780 green net <br>192.168.1.1 <br>User Name:root <br>Password:12345 </p>
<p>格林耐特 GRT1500 AD6485/AD6488 green net <br>192.168.1.1 <br>User Name:root <br>Password:12345 </p>
<p>grt 1500c <br><a href="http://192.168.1.1/">http://192.168.1.1/</a> <br>User Name: adminr <br>Password: greennet </p>
<p>ALPHA AFW-GR50 <br>192.168.18.1 <br>用户名：admin <br>密码：admin </p>
<p>NETCORE（磊拓）路由器 <br>IP192.168.1.1 <br>帐户：guest <br>密码：guest </p>
<p>D-LINK 路由器 <br>IP 192.168.0.1 <br>帐户为ADMIN <br>密码为空 </p>
<p>A+LINK 路由器 <br>IP 192.168.123.254 <br>密码为ADMIN </p>
<p>NETGEAR 路由器 <br>192.168.0.1 <br>帐号ADMIN <br>密码 password </p>
<p>锐捷网络 路由器 <br>192.168.1.1 <br>帐号：ADMIN <br>密码：ADMIN </p>
<p>TP-LINK R402 <br>192.168.1.1 <br>用户：admin <br>密码：admin </p>
<p>TP-LINK R480T <br>192.168.1.1 <br>用户：admin <br>密码：admin </p>
<p>路由品牌名：viking <br>帐号：adsl 密码：adsl1234 <br>帐号：root 密码：grouter </p>
<p><br>路由品牌名：mt800 <br>帐号：admin <br>密码：admin </p>
<p><br>路由品牌名：home gateway <br>帐号：user <br>密码：password<br></p>
<img src ="http://www.cnitblog.com/201/aggbug/49892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-10-06 13:52 <a href="http://www.cnitblog.com/201/archive/2008/10/06/49892.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 下如何读取 使用 iso 镜像文件.</title><link>http://www.cnitblog.com/201/archive/2008/09/25/49529.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Thu, 25 Sep 2008 08:30:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/09/25/49529.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/49529.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2008/09/25/49529.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/49529.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/49529.html</trackback:ping><description><![CDATA[如果拷贝到本地，可以使用mount<br>mount fileName mountPoint -o loop，fileName是镜像文件名(*.iso,*.img)，<br>用例：如我有一个/home/rhel5.2.iso光盘镜像文件，<br>mkdir /mnt/b<br>mount /home/rhel5.2.iso /mnt/b -o loop，这样进入目录/mnt/b 你就能浏览rhel5.2.iso的内容了，*.img文件的用法一样。<br><br><br>其它一些可能对你有用，供参考<br><br>　 linux是一个优秀的开放源码的<a title=操作系统 style="COLOR: rgb(0,0,0)" href="http://product.it168.com/list/b/0501_1.shtml" target=_blank><u>操作系统</u></a>，可以运行在大到巨型小到掌上型各类计算机系统上，随着linux系统的日渐成熟和稳定以及它开放源代码特有的优越性，linux在全世界得到了越来越广泛的应用。现在许多企业的计算机系统都是由UNIX系统、Linux系统和Windows系统组成的混合系统，不同系统之间经常需要进行数据交换。下面我根据自己的实际工作经验介绍一下如何在linux系统下挂接(mount)光盘镜像文件、<a title=移动硬盘 style="COLOR: rgb(0,0,0)" href="http://product.it168.com/files/0309search.shtml" target=_blank><u>移动硬盘</u></a>、U盘以及Windows<a title=网络 style="COLOR: rgb(0,0,0)" href="http://net.it168.com/" target=_blank><u>网络</u></a>共享和UNIX NFS网络共享。
<p>　　<strong>挂接命令(mount)</strong></p>
<p>　　首先，介绍一下挂接(mount)命令的使用方法，mount命令参数非常多，这里主要讲一下今天我们要用到的。</p>
<p>　　命令格式：</p>
<p>　　mount [-t vfstype] [-o options] device dir</p>
<p><span id=zoom><br></span></p>
<p>　　其中：</p>
<p>　　1.-t vfstype 指定文件系统的类型，通常不必指定。mount 会自动选择正确的类型。常用类型有：</p>
<p>　　光盘或光盘镜像：iso9660</p>
<p>　　DOS fat16文件系统：msdos</p>
<p>　　Windows 9x fat32文件系统：vfat</p>
<p>　　Windows NT ntfs文件系统：ntfs</p>
<p>　　Mount Windows文件网络共享：smbfs</p>
<p>　　UNIX(LINUX) 文件网络共享：nfs</p>
<p>　　2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有：</p>
<p>　　loop：用来把一个文件当成<a title=硬盘 style="COLOR: rgb(0,0,0)" href="http://product.it168.com/list/b/0218_1.shtml" target=_blank><u>硬盘</u></a>分区挂接上系统</p>
<p>　　ro：采用只读方式挂接设备</p>
<p>　　rw：采用读写方式挂接设备</p>
<p>　　iocharset：指定访问文件系统所用字符集</p>
<p>　　3.device 要挂接(mount)的设备。</p>
<p>　　4.dir设备在系统上的挂接点(mount point)。</p>
<p>　　<strong>挂接光盘镜像文件</strong></p>
<p>　　由于近年来磁盘技术的巨大进步，新的电脑系统都配备了大容量的磁盘系统，在Windows下许多人都习惯把<a title=软件 style="COLOR: rgb(0,0,0)" href="http://software.it168.com/" target=_blank><u>软件</u></a>和资料做成光盘镜像文件通过虚拟光驱来使用。这样做有许多好处：一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问题，随用随调十分方便;三、硬盘的读取速度要远远高于光盘的读取速度，<a title=CPU style="COLOR: rgb(0,0,0)" href="http://product.it168.com/list/b/0217_1.shtml" target=_blank><u>CPU</u></a>占用率大大降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便，不必借用任何第三方软件包。</p>
<p>　　1、从光盘制作光盘镜像文件。将光盘放入光驱，执行下面的命令。</p>
<p>　　　#cp /dev/cdrom /home/sunky/mydisk.iso 或</p>
<p>　　　#dd if=/dev/cdrom of=/home/sunky/mydisk.iso</p>
<p>　　　注：执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso</p>
<p>　　2、将文件和目录制作成光盘镜像文件，执行下面的命令。</p>
<p>　　　#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir</p>
<p>　　　注：这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso，光盘卷标为：mydisk</p>
<p>　　3、光盘镜像文件的挂接(mount)</p>
<p>　　　#mkdir /mnt/vcdrom</p>
<p>　　　注：建立一个目录用来作挂接点(mount point)</p>
<p>　　　#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom</p>
<p>　　　注：使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。　　　</p>
<p>　　<strong>挂接移动硬盘</strong></p>
<p>　　对linux系统而言，USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前，应先用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。</p>
<p>　　[root at pldyrouter /]# fdisk -l</p>
<p>　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes</p>
<p>　　255 heads, 63 sectors/track, 8924 cylinders</p>
<p>　　Units = cylinders of 16065 * 512 = 8225280 bytes</p>
<p>　　Device Boot <a title=Start style="COLOR: rgb(0,0,0)" href="http://product.it168.com/list/b/04020413_1.shtml" target=_blank><u>Start</u></a> End Blocks Id System</p>
<p>　　/dev/sda1 1 4 32098+ de Dell Utility</p>
<p>　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS</p>
<p>　　/dev/sda3 2555 7904 42973875 83 Linux</p>
<p>　　/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)</p>
<p>　　/dev/sda5 7905 8924 8193118+ 82 Linux swap</p>
<p>　　在这里可以清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4, /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后，再用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况</p>
<p>　　[root at pldyrouter /]# fdisk -l</p>
<p>　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes</p>
<p>　　255 heads, 63 sectors/track, 8924 cylinders</p>
<p>　　Units = cylinders of 16065 * 512 = 8225280 bytes</p>
<p>　　Device Boot Start End Blocks Id System</p>
<p>　　/dev/sda1 1 4 32098+ de Dell Utility</p>
<p>　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS</p>
<p>　　/dev/sda3 2555 7904 42973875 83 Linux</p>
<p>　　/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)</p>
<p>　　/dev/sda5 7905 8924 8193118+ 82 Linux swap</p>
<p>　　Disk /dev/sdc: 40.0 GB, 40007761920 bytes</p>
<p>　　255 heads, 63 sectors/track, 4864 cylinders</p>
<p>　　Units = cylinders of 16065 * 512 = 8225280 bytes</p>
<p>　　Device Boot Start End Blocks Id System</p>
<p>　　/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS</p>
<p>　　/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)</p>
<p>　　/dev/sdc5 511 4864 34973473+ b Win95 FAT32</p>
<p>　　大家应该可以发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。</p>
<p>　　　#mkdir -p /mnt/usbhd1</p>
<p>　　　#mkdir -p /mnt/usbhd2</p>
<p>　　　注：建立目录用来作挂接点(mount point)</p>
<p>　　　#mount -t ntfs /dev/sdc1 /mnt/usbhd1</p>
<p>　　　#mount -t vfat /dev/sdc5 /mnt/usbhd2 </p>
<p>　　　注：对ntfs格式的磁盘分区应使用-t ntfs 参数，对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示，可以使用下面的命令格式。</p>
<p>　　　#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1</p>
<p>　　　#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2</p>
<p>　　linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样，在linux下使用就更方便了。使用下面的命令直接挂接即可。</p>
<p>　　　#mount /dev/sdc1 /mnt/usbhd1　　　</p>
<p>　　<strong>挂接U盘</strong></p>
<p>　　和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前，应先用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。</p>
<p>　　[root at pldyrouter root]# fdisk -l</p>
<p>　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes</p>
<p>　　255 heads, 63 sectors/track, 8924 cylinders</p>
<p>　　Units = cylinders of 16065 * 512 = 8225280 bytes</p>
<p>　　Device Boot Start End Blocks Id System</p>
<p>　　/dev/sda1 1 4 32098+ de Dell Utility</p>
<p>　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS</p>
<p>　　/dev/sda3 2555 7904 42973875 83 Linux</p>
<p>　　/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)</p>
<p>　　/dev/sda5 7905 8924 8193118+ 82 Linux swap</p>
<p>　　插入U盘后，再用fdisk &#8211;l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。</p>
<p>　　[root at pldyrouter root]# fdisk -l</p>
<p>　　Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes</p>
<p>　　255 heads, 63 sectors/track, 8924 cylinders</p>
<p>　　Units = cylinders of 16065 * 512 = 8225280 bytes</p>
<p>　　Device Boot Start End Blocks Id System</p>
<p>　　/dev/sda1 1 4 32098+ de Dell Utility</p>
<p>　　/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS</p>
<p>　　/dev/sda3 2555 7904 42973875 83 Linux</p>
<p>　　/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)</p>
<p>　　/dev/sda5 7905 8924 8193118+ 82 Linux swap</p>
<p>　　Disk /dev/sdd: 131 MB, 131072000 bytes</p>
<p>　　9 heads, 32 sectors/track, 888 cylinders</p>
<p>　　Units = cylinders of 288 * 512 = 147456 bytes</p>
<p>　　Device Boot Start End Blocks Id System</p>
<p>　　/dev/sdd1 * 1 889 127983+ b Win95 FAT32</p>
<p>　　Partition 1 has different physical/logical endings:</p>
<p>　　phys=(1000, 8, 32) logical=(888, 7, 31)</p>
<p>　　系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。</p>
<p>　　#mkdir -p /mnt/usb</p>
<p>　　注：建立一个目录用来作挂接点(mount point)</p>
<p>　　#mount -t vfat /dev/sdd1 /mnt/usb</p>
<p>　　注：现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示，可以使用下面的命令。</p>
<p>　　#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb</p>
<p>　　<strong>挂接Windows文件共享</strong></p>
<p>　　Windows网络共享的核心是SMB/CIFS，在linux下要挂接(mount)windows的磁盘共享，就必须安装和使用samba 软件包。现在流行的linux发行版绝大多数已经包含了samba软件包，如果安装linux系统时未安装samba请首先安装samba。当然也可以到<a href="http://www.shuai.com.ru/www.samba.org%E7%BD%91%E7%AB%99%E4%B8%8B%E8%BD%BDsamba%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%8C%E7%8E%B0%E5%9C%A8%E6%9C%80%E6%96%B0%E7%9A%84%E7%89%88%E6%9C%AC%E6%98%AF3.0.10%E7%89%88%E3%80%82" target=_blank _base_href="http://www.shuai.com.ru/"><u><font color=#0000ff>www.samba.org网站下载......新的版本是3.0.10版。</font></u></a></p>
<p>　　当windows系统共享设置好以后，就可以在linux客户端挂接(mount)了，具体操作如下：</p>
<p>　　# mkdir &#8211;p /mnt/samba </p>
<p>　　注：建立一个目录用来作挂接点(mount point)</p>
<p>　　# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba</p>
<p>　　注：administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的一个用户名和密码，c$是这台计算机的一个磁盘共享</p>
<p>　　如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003环境下测试通过。</p>
<p>　　<strong>挂接UNIX系统NFS文件共享</strong></p>
<p>　　类似于windows的网络共享，UNIX(Linux)系统也有自己的网络共享，那就是NFS(网络文件系统)，下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。</p>
<p>　　在linux客户端挂接(mount)NFS磁盘共享之前，必须先配置好NFS服务端。</p>
<p>　　1、Solaris系统NFS服务端配置方法如下：</p>
<p>　　　(1)修改 /etc/dfs/dfstab, 增加共享目录</p>
<p>　　　　　　share -F nfs -o rw /export/home/sunky</p>
<p>　　　(2)启动nfs服务</p>
<p>　　　　　　# /etc/init.d/nfs.server start</p>
<p>　　　(3)NFS服务启动以后，也可以使用下面的命令增加新的共享</p>
<p>　　　　　　# share /export/home/sunky1</p>
<p>　　　　　　# share /export/home/sunky2</p>
<p>　　　注：/export/home/sunky和/export/home/sunky1是准备共享的目录</p>
<p>　　2、linux系统NFS服务端配置方法如下：</p>
<p>　　　(1)修改 /etc/exports,增加共享目录</p>
<p>　　/export/home/sunky 10.140.133.23(rw)</p>
<p>　　/export/home/sunky1 *(rw)</p>
<p>　　/export/home/sunky2 linux-client(rw) </p>
<p>　　　注：/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录，10.140.133.23、*、 linux- client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机/etc/hosts文件里增加linux-client主机ip定义。格式如下：</p>
<p>　　　10.140.133.23 linux-client</p>
<p>　　　(2)启动与停止NFS服务</p>
<p>　　　/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的) </p>
<p>　　　/etc/rc.d/init.d/nfs start 启动NFS服务</p>
<p>　　　/etc/rc.d/init.d/nfs stop 停止NFS服务</p>
<p>　　　注：若修改/etc/export文件增加新的共享，应先停止NFS服务，再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也可以达到同样的效果。</p>
<p>　　3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享</p>
<p>　　　# mkdir &#8211;p /mnt/nfs</p>
<p>　　　注：建立一个目录用来作挂接点(mount point)</p>
<p>　　　#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs</p>
<p>　　　注：这里我们假设10.140.133.9是NFS服务端的主机IP地址，当然这里也可以使用主机名，但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。</p>
<p>　　如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&amp;sparc环境下测试通过。</p>
<img src ="http://www.cnitblog.com/201/aggbug/49529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-09-25 16:30 <a href="http://www.cnitblog.com/201/archive/2008/09/25/49529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在excel中输入对号与错号，平方和立方</title><link>http://www.cnitblog.com/201/archive/2008/08/25/48331.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 25 Aug 2008 02:41:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/08/25/48331.html</guid><description><![CDATA[London 2012<br><br>在excel中输入对号与错号的简便方法：对号：按住 alt然后输入数字小键盘的41420，松开alt即可。<br>错号：按住 alt然后输入数字小键盘的41409，松开alt即可。<br>平方：按住 alt然后输入数字小键盘的178，松开alt即可。<br>立方：按住 alt然后输入数字小键盘的179，松开alt即可。<br><br>记住：一定是数字小键盘的数字，这样才有效。
<img src ="http://www.cnitblog.com/201/aggbug/48331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-08-25 10:41 <a href="http://www.cnitblog.com/201/archive/2008/08/25/48331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通用万能密码解决办法</title><link>http://www.cnitblog.com/201/archive/2008/07/11/46620.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Fri, 11 Jul 2008 14:19:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/07/11/46620.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/46620.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2008/07/11/46620.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/46620.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/46620.html</trackback:ping><description><![CDATA[通用万能密码解决办法<br>（这对老的主板的CMOS有用，密码注意大小写）<br><br>我们知道主板上用的BIOS系统基本上都是AWARD的，还有不多的是AMI等厂商的。<br>这些厂家在生产时都为自己的BIOS预留了万能密码，以解不时之需。<br>其中Award只有4.51版以前的才有通用密码，可能的万能密码如下：<br>  wantgirl<br>  Syxz<br>  dirrid<br>  eBBB<br>  h996<br>  wnatgirl<br>  Award <br>注：在开机启动的时候，可以看见屏幕上显示的BIOS版本。<br><img src ="http://www.cnitblog.com/201/aggbug/46620.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-07-11 22:19 <a href="http://www.cnitblog.com/201/archive/2008/07/11/46620.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 下查看内存条数 命令</title><link>http://www.cnitblog.com/201/archive/2008/05/29/44524.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Thu, 29 May 2008 02:32:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2008/05/29/44524.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/44524.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2008/05/29/44524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/44524.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/44524.html</trackback:ping><description><![CDATA[# dmidecode&nbsp;|grep&nbsp;-A16&nbsp;&nbsp;"Memory&nbsp;Device$"<br><br><br>[root@svn bin]# dmidecode | grep -A16 "Memory Device$"<br>Memory Device<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array Handle: 0x1000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error Information Handle: No Error<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size: No Module Installed<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form Factor: DIMM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set: None<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locator: DIMM_1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bank Locator: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: DDR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type Detail: Synchronous<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Speed: 533 MHz (1.9 ns)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manufacturer: FFFFFFFFFFFFFFFF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial Number: FFFFFFFF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asset Tag: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Part Number:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>--<br>Memory Device<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array Handle: 0x1000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error Information Handle: No Error<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total Width: 72 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size: 256 MB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form Factor: DIMM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set: None<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locator: DIMM_3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bank Locator: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: DDR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type Detail: Synchronous<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Speed: 533 MHz (1.9 ns)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manufacturer: CE00000000000000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial Number: 71018FDB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asset Tag: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Part Number: M3 91T3253FZ3-CD5 <br>--<br>Memory Device<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array Handle: 0x1000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error Information Handle: No Error<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size: No Module Installed<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form Factor: DIMM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set: None<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locator: DIMM_2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bank Locator: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: DDR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type Detail: Synchronous<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Speed: 533 MHz (1.9 ns)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manufacturer: FFFFFFFFFFFFFFFF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial Number: FFFFFFFF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asset Tag: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Part Number:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>--<br>Memory Device<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array Handle: 0x1000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error Information Handle: No Error<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total Width: 72 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Width: 64 bits<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size: 256 MB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form Factor: DIMM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set: None<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locator: DIMM_4<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bank Locator: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: DDR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type Detail: Synchronous<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Speed: 533 MHz (1.9 ns)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manufacturer: CE00000000000000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial Number: 71018FD8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asset Tag: Not Specified<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Part Number: M3 91T3253FZ3-CD5 
<img src ="http://www.cnitblog.com/201/aggbug/44524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2008-05-29 10:32 <a href="http://www.cnitblog.com/201/archive/2008/05/29/44524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DELL Server BIOS升级过程中中断电源恢复</title><link>http://www.cnitblog.com/201/archive/2007/11/30/37086.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Fri, 30 Nov 2007 08:35:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2007/11/30/37086.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/37086.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2007/11/30/37086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/37086.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/37086.html</trackback:ping><description><![CDATA[一般主板升级BIOS 过程中不允许重启或者中断电源，由于某种原因你可能会刚好遭遇到这2种情况，那么不要气馁。<br>首先检查你的主板是否还能读软盘，开机的时候观察软驱， 显示器是否有信息。 计算机是否报警。<br><br>遭遇现象一，升级过程中重新启动计算机，计算机报警12-12 声，无显示，软驱不工作。<br><br>询问DELL 技术支持，要求如果过保的话要订购新主板（DELL配件非常昂贵的）；找芯片级公司维修（能否修好还是个问题，不能给客户最终承诺的；价格也不便宜）。<br><br>INTEL 主板是把BIOS 嵌入到主板的，不能简单取下。<br><br>慢慢通过GOOGLE来学习吧，无意找到一篇关于主板上跳线技术讨论。 一些主板厂商为防止病毒入侵等问题在主板设置了BIOS恢复跳线。<br><br>DELL 使用的是INTEL 主板， 其中的RTCRST 就是这组跳线，将跳线连好，接通电源启动。 无任何信息<br><br>关闭电源，恢复跳线原来状态，开启计算机，BIOS恢复，系统可以启动。<br><br><br><img src ="http://www.cnitblog.com/201/aggbug/37086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2007-11-30 16:35 <a href="http://www.cnitblog.com/201/archive/2007/11/30/37086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下常用压缩格式的压缩与解压方法</title><link>http://www.cnitblog.com/201/archive/2007/08/08/31508.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Wed, 08 Aug 2007 06:26:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2007/08/08/31508.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/31508.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2007/08/08/31508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/31508.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/31508.html</trackback:ping><description><![CDATA[Linux下常用压缩格式的压缩与解压方法<br>---------------------------------------------<br>.tar<br>打包：tar cvf *.tar *.*(原文件或目录)<br>解包：tar xvf *.tar<br>---------------------------------------------<br>.gz<br>解压1：gunzip *.gz<br>解压2：gzip -d *.gz<br>压缩：gzip *.*(原文件或目录) <br>---------------------------------------------<br>.tar.gz<br>解压1：tar zxvf *.tar.gz<br>解压2：gzip -dc *.tar.gz | tar xvf &#8211; <br>压缩: tar zcvf *.tar.gz&nbsp;&nbsp;*.*(原文件或目录)<br>--------------------------------------------- <br>.bz2<br>解压1：bzip2 -d *.bz2<br>解压2：bunzip2 *.bz2<br>压缩： bzip2 -z *.*(原文件或目录)<br>---------------------------------------------<br>.tar.bz2<br>解压1：tar jxvf *.tar.bz2 <br>解压3：tar Ixvf *.tar.bz2&nbsp; &nbsp;<br>解压2：bzip2 -dc *.tar.bz2 | xvf &#8211;<br>压缩：tar jcvf *.tar.bz2 DirName<br>---------------------------------------------<br>.bz<br>解压1：bzip2 -d FileName.bz <br>解压2：bunzip2 FileName.bz<br>压缩：未知<br>---------------------------------------------<br>.tar.bz<br>解压：tar jxvf FileName.tar.bz<br>压缩：未知<br>---------------------------------------------<br>.Z<br>解压：uncompress FileName.Z<br>压缩：compress FileName<br>---------------------------------------------<br>.tar.Z<br>解压1：tar Zxvf FileName.tar.Z<br>解压2: compress -dc FileName.tar.Z | tar xvf &#8211; <br>压缩：tar Zcvf FileName.tar.Z DirName<br>---------------------------------------------<br>.tgz<br>解压：tar zxvf FileName.tgz<br>压缩：未知<br>---------------------------------------------<br>.tar.tgz<br>解压：tar zxvf FileName.tar.tgz<br>压缩：tar zcvf FileName.tar.tgz FileName<br>---------------------------------------------<br>.a<br>解压：#tar xv FileName.a<br>---------------------------------------------<br>.cpio.gz/.cgz <br>解压：gzip -dc FileName.cgz | cpio -div<br>---------------------------------------------<br>.cpio/cpio <br>解压1：cpio -div FileName.cpio 或cpio -divc FileName.cpio<br>解压2：cpio -idmv &lt; FileName.cpio /你想指定的目录/<br>---------------------------------------------<br>.rpm <br>安装: rpm -ivh FileName.rpm<br>解压：rpm2cpio FileName.rpm | cpio -div<br>---------------------------------------------<br>.src.rpm<br>安装: rpmbuild --rebuild FileName.src.rpm<br>---------------------------------------------<br>.deb <br>安装: dpkg -i FileName.deb<br>解压：dpkg-deb --fsys-tarfile FileName.deb | tar xvf - ar p file.deb data.tar.gz | tar xvzf -<br>---------------------------------------------<br>.zip<br>解压：unzip FileName.zip<br>压缩：zip FileName.zip DirName<br>---------------------------------------------<br>.rar<br>解压：rar a FileName.rar<br>压缩：rar e FileName.rar<br>rar请到：<a href="http://www.rarsoft.com/download.htm" target=_blank><u><font color=#0000ff>http://www.rarsoft.com/download.htm</font></u></a> 下载！<br>解压后请将rar_static拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp rar_static /usr/bin/rar<br>---------------------------------------------<br>.lha<br>解压：lha -e FileName.lha <br>压缩：lha -a FileName.lha FileName<br>lha请到：<a href="http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/" target=_blank><u><font color=#0000ff>http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/</font></u></a>下载！<br>解压后请将lha拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp lha /usr/bin/<br>---------------------------------------------<br>.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea<br>解压：sEx x FileName.* <br>压缩：sEx a FileName.* FileName<br>---------------------------------------------<br>sEx只是调用相关程序，本身并无压缩、解压功能，请注意！<br>sEx请到：<a href="http://sourceforge.net/projects/sex" target=_blank><u><font color=#0000ff>http://sourceforge.net/projects/sex</font></u></a>下载！<br>解压后请将sEx拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp sEx /usr/bin/<br>---------------------------------------------
<img src ="http://www.cnitblog.com/201/aggbug/31508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2007-08-08 14:26 <a href="http://www.cnitblog.com/201/archive/2007/08/08/31508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nokia 手机密码忘记后破解</title><link>http://www.cnitblog.com/201/archive/2007/08/03/31189.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Fri, 03 Aug 2007 06:17:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2007/08/03/31189.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/31189.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2007/08/03/31189.html#Feedback</comments><slash:comments>51</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/31189.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/31189.html</trackback:ping><description><![CDATA[<p>万一你的手机因为某种原因密码锁定，你会怎么做，推荐大家一个在线获得破解密码的站点<br><a href="http://nfader.z-host.ru/">http://nfader.z-host.ru/</a><br><br><br>诺基亚手机FS的福音，诺基亚手机解保密码软件，输串号就可以解</p>
<p>诺基亚手机是全球占有最大的手机牌子了，总有不小心把保密锁了的，以往都是保密码锁了就不能用解开，只能刷软件，但是刷软件有的地方没有，还要几十大钞，那个心疼啊，现在好了，有这个软件出来了，只要输入手机串号就可以得到解锁的密码了,诺基亚手机大部分可以解了，不能解的大家跟贴说一下下了就要顶，顶了就要下</p>
<p>自己实验：能不能用自己用自己手机试下，诺基亚的才行，手机没锁的一样的可能试，可以进　设置　里的　保密设置，再进密码功能，修改保密码就行，等于假装不知道保密码，只要是能用的会提示输入新的密码</p>
<p>输入手机串号,会自动算出保密码,<br>串号取得:在手机上输入*#06#<br></p>
<br><br><br>其它转载<br><br>诺基亚初始保密码：12345
<p>　　5110锁码机解码：在保密码锁死，输入正确保密码无效的情况下，可1、按C键不放，2、按*键不放，3、按*键不放，4、输入04*PIN*PIN*PIN#解除锁码。</p>
<!--advertisement code begin-->
<script src="http://www.northeast.cn/js/advertise_in_news/adv_4000000.js"></script>
<!--advertisement code end-->
<p>　　3210解SP锁： 1、按C键2、按向下键3、按C键直到屏幕清除4、按住*键直到其闪烁5、再按住*键直到其闪烁，输入04*PIN码*PIN码*PIN</p>
<p>　　N7650恢复出厂设置：*#7370#</p>
<p>　　诺基亚手机省30%电密码：*#746025625#</p>
<p>　　诺基亚手机查出厂日期：*#0000#</p>
<p>　　诺基亚能打过进不能呼出：如果显示屏左上角有&#8220;2&#8221;字，按住#键两秒，再按确认即可；如果没有显示&#8220;2&#8221;，则按&#8220;功能键&#8221;+6+1+4+2再按确认即可。</p>
<p>　　显示手机资料密码：输入*#92702689#</p>
<p>　　查询手机是否锁频： &#8220;#pw+1234567890+1#&#8221;查询是否锁国家码；&#8220;#pw+1234567890+2#&#8221;查询是否锁网络码；&#8220;#pw+1234567890+3#&#8221;查询是否锁网络提供商锁定的码；&#8220;#pw+1234567890+4#&#8221;查询是否锁SIM卡。(连续按*键二次即出现+；连续按*键三次即出现p；连续按*键四次即出现w)</p>
<p>　　诺基亚3210外文改中文：屏幕右上角依次调到4-2-1-9</p>
<p>　　诺基亚5110外文改中文：屏幕右上角依次调到4-2-1-8</p>
<p>　　诺基亚3310外文改中文：屏幕右上角依次调到6-2-1-3</p>
<!--function: content() parse end  15ms cost! -->
<img src ="http://www.cnitblog.com/201/aggbug/31189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2007-08-03 14:17 <a href="http://www.cnitblog.com/201/archive/2007/08/03/31189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>金山词霸2005 不能屏幕取词 解决</title><link>http://www.cnitblog.com/201/archive/2006/07/03/13184.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 03 Jul 2006 08:06:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2006/07/03/13184.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/13184.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2006/07/03/13184.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/13184.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/13184.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="97%" align="center" border="0">
				<tbody>
						<tr>
								<td colspan="2" height="11">
										<br />    最近，由于编程需要，每天都要对着满屏的英文参考文档。英文不是太好的我，决心投一回“懒”，于是安装了金山词霸2006。可是一打开屏幕取词功能，屏幕就一闪一闪的，紧跟着所有程序一个个都关闭了。怎么回事？ <br /><br />    上网一查原来早在indows XP Professtional + SP1上，在Visual Studio 2003里就取词失败，导致金山词霸进程崩溃（幸亏了Windows NT内核的进程保护功能，系统没有崩溃）。使用工具分析其原因，是因为金山词霸的鼠标钩子和Visual Studio 2003的鼠标钩子冲突导致的内存泄露瞬间积攒到溢出上限导致的软件崩溃，可能是金山词霸编写中过分的依赖了MFC的字符串功能，却忘记了这种跨边界堆的字符串并不是线程安全的，还好不久金山公司就也推出的SP1补丁，解决了这个问题。<br /><br />    随着Windows XP SP2补丁的出现，又一个问题出现了，这次更严重——屏幕取词导致的Explorer进程崩溃。Explorer进程是IE Explorer和Windows资源管理器得以执行的关键进程，这个进程失败的直接后果就导致了屏幕上一切窗口消失，状态栏消失，图标消失，然后就是这个进程重启导致的内存泄露（在Explorer失败的同时，很多进程的线程肯定是来不及正确退出的），这一次的补丁却没有上一次那么隆重了，仅仅是替换了一个Dll文件XdictGrb.dll，这是一个COM组件，看名字也没看出来它是做什么的，反正是出问题了。从表象上看，可能还是鼠标钩子程序的问题，至于究竟问题出在哪里，就不得而知了。<br /><p align="center"><img alt="96ec5860ba758097daa6955dca31ffe88bc0.jpg" src="http://www.hebei.com.cn/node2/node17/node1079/images/00087993.jpg" /></p><p align="center">图1</p><p align="left">    如何解决呢？<br /><br />    办法一：<br /><br />    请不要将金山词霸安装在中文目录下面，这样会导致金山词霸不能屏幕取词（见图01）；<br /><br />    办法二：<br /><br />    如果出现金山词霸、不能查询字典、不能取词等问题，运行程序菜单中的“词霸故障自动修复”，即可自动修复大部分问题；<br /><br />    办法三：<br /><br />    1、重新安装词霸，安装过程中可以选择典型安装。<br /><br />    2、安装 金山词霸相应版本的 SP1补丁包（注意盗版用户打完SP1在同一网内只允许一台机器使用）；<br /><br />    3、金山词霸2005在xp系统sp2和Windows2003 R2下屏幕取词出现桌面闪烁的现象。现在，只要您从金山词霸官方网站下载<a href="http://support.kingsoft.com/c_1/XdictGrb.dll"><font color="#000000" size="2">http://support.kingsoft.com/c_1/XdictGrb.dll</font></a> ，将下载的文件xdictgrb.dll替换词霸安装目录下的同名文件即可轻松解决这个问题（必要时，可以运行 regsvr32 c:\ciba\xdictgrb.dll）。<br /><br />    办法四：<br /><br />    控制面板→系统属性→高级→性能→设置→数据执行保护→选中“为下列选定程序以外的所有程序和服务启用DDP”（不可靠的）→添加C:\WINDOWS\explorer和C:\WINDOWS\system32\rundll32.exe(显示为"Run a Dllas an App")两个程序。</p></td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/201/aggbug/13184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2006-07-03 16:06 <a href="http://www.cnitblog.com/201/archive/2006/07/03/13184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下如何使用USB转串口线？</title><link>http://www.cnitblog.com/201/archive/2005/12/27/5813.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Tue, 27 Dec 2005 00:03:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2005/12/27/5813.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/5813.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2005/12/27/5813.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/5813.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/5813.html</trackback:ping><description><![CDATA[<DIV class=entry>计算机的串口不能用，怎么与目标板的串口连接呢？<BR><BR>
<P>windows下可以用USB转串口线实现，在google上搜索了一下,linux下更简单，连驱动都免装!<BR>测试环境：redhat linux fedora core 4<BR><BR>总结如下：<BR><BR>1. 检查是否存在设备/dev/ttyUSB0,如果没有就建立一个：<BR>mknod /dev/ttyUSB0 c 188 0<BR><BR>以下推理未测试：<BR>如果有多个USB口，可以类推，建立/dev/ttyUSB[1-n],注意从设备号要累加，<BR>如：mknod /dev/ttyUSB[1-n] c 188 [1-n]<BR><BR>2. 启动minicom, 设置串口设备为 /dev/ttyUSB0, 再设置波特率/数据位/停止位，保存为缺省配置df1<BR><BR>3. 重启minicom, 复位目标板，看是否有打印信息？ <BR>如果没有请确认：a)USB/串口线没问题，b)确认你使用的USB口是第一个(一个个的试吧，一般电脑不会标示出来)</P></DIV><img src ="http://www.cnitblog.com/201/aggbug/5813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2005-12-27 08:03 <a href="http://www.cnitblog.com/201/archive/2005/12/27/5813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最佳网管工具点评</title><link>http://www.cnitblog.com/201/archive/2005/12/26/5791.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Mon, 26 Dec 2005 05:12:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2005/12/26/5791.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/5791.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2005/12/26/5791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/5791.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/5791.html</trackback:ping><description><![CDATA[<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日前，美国《Network World》通过读者调查，选出了最受读者欢迎的网络管理工具，我们也将它们推荐给国内的网管员们，希望能助他们一臂之力，使他们轻松排除网络故障。</P>
<P>　　工具名称:<STRONG>SolarWinds Engineer Edition</STRONG></P>
<P>　　网址:http://www.solarwinds.net</P>
<P>　　推荐理由:有读者说:"在不到一小时的时间内，我从网站上下载并安装了SolarWinds的授权版本。不久后，我就可以制作线路使用报告了，而且线路使用和基本响应时间功能非常棒，此外，数据还被保存下来，使我可以一个星期、一个月或一年后查看数据。"</P>
<P>　　工具名称:<STRONG>NetWatch套件</STRONG></P>
<P>　　公司名称:Crannog Software</P>
<P>　　网址:http://www.crannog-software.com/netwatch.html</P>
<P>　　推荐理由:有读者认为这种软件由简单但却有效的点解决方案构成，这些解决方案在使用和效力上超过了他们所有的更大型的网络管理产品。NetFlow Monitor是另一种解决流量可见性问题的低成本解决方案，但NetWatch使网管员可以通过简捷的点击过程定制创建网络地图。而且，这种软件基本上不需要培训和维护。</P>
<P>　　工具名称:<STRONG>WhatsUp Gold</STRONG></P>
<P>　　公司名称:Ipswitch</P>
<P>　　网址:http://www.ipswitch.com</P>
<P>　　推荐理由:用户对它的评价是具有非常昂贵的产品才拥有的很多功能，而价格却非常低廉。还有读者称:"我们能够在几分钟之内安装好软件，自动发现大多数网络设备，并开始向我们的文本电话机发送状态报警。此外，我们还监测不应出现问题的服务和Web内容变化。"</P>
<P>　　另一位用户还利用它"报告简单的服务水平协议状况，让我的用户无法在真正发生了多少次故障上弄虚作假。"</P>
<P>　　工具名称:<STRONG>Etherpeek NX、Sniffer Distributed</STRONG></P>
<P>　　公司名称:WildPackets、NAI</P>
<P>　　网址:http://www.wildpackets.comwww.networkassociates.com</P>
<P>　　推荐理由:一位读者推荐Etherpeek NX 2.0作为一种"价格低廉、功能优秀"的协议分析仪。Etherpeek NX 2.0帮助他解决断续出现的、复杂的应用问题。</P>
<P>　　另一种读者推荐的工具是来自NAI的Sniffer Distributed。他觉得如果工具包中缺少这种工具，他将无法生存。</P>
<P>　　工具名称:<STRONG>Packeteer PacketShaper</STRONG></P>
<P>　　网址:http://www.packeteer.com</P>
<P>　　推荐理由:一位读者说:"当用于应用或主机上时，我们对报告和配置的粒度感到满意。它使我们可以找到一条完全拥塞的768K bit/s WAN链路，有效地从它里面得到更多的带宽。"</P>
<P>　　工具名称:<STRONG>NMIS(网络管理信息系统)</STRONG></P>
<P>　　网址:http://www.sins.com.au/nmis/</P>
<P>　　推荐理由:它可以通过开放源代码GPL许可证免费使用，可以运行在Linux上。有读者说，它提供的支持"比我得到的任何支持都好。"该工具受到欢迎的另一个原因在于它带有仪表板的用户友好的Web界面，支持"在一个页面中以一种简要的、分级的和色块方式显示我所有200台网络设备的状态，从而使我可以轻松地找到问题的根源和范围。"</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工具名称:<STRONG>Observer</STRONG></P>
<P>　　公司名称:Network Instruments</P>
<P>　　网址:http://www.networkinstruments.net</P>
<P>　　推荐理由:这款工具由于"是目前功能最强和最多样化的平台"而成为读者的选择。</P>
<P>　　工具名称:<STRONG>xsight</STRONG></P>
<P>　　公司名称:Aprisma Spectrum</P>
<P>　　网址:http://www.aprisma.com</P>
<P>　　推荐理由:有读者喜欢用Aprisma Spectrum公司的xsight来进行故障隔离，他说:"xsight与Attention Software一起使用可以令人信服地解决报警问题并向他人发出寻呼。"他还使用CiscoWorks来管理和维护他们的Cisco网络的防火墙和配置。</P>
<P>　　工具名称:<STRONG>MRTG</STRONG></P>
<P>　　网址:http://www.mrtg.it</P>
<P>　　推荐理由:据一位读者称，多路由流量图形工具(MRTG)是其最爱，他说:"MRTG在收集有关网络带宽使用的统计数据和服务器监控方面表现非常棒。"MRTG不仅是免费的，而且还是通过GNU(通用公用许可)提供的。</P>
<P>　　工具名称:<STRONG>PingPlotter、FREEPing</STRONG></P>
<P>　　公司名称: Nessoft、Tool4ever</P>
<P>　　网址:http://www.pingplotter.comwww.tools4ever.com</P>
<P>　　推荐理由:PingPlotter是读者推荐的一项价格仅为15美元的Ping和Traceroute工具。一旦出现问题，这位读者就启动该程序来查找问题出在哪里。FREEping是另一项读者推荐的可以免费下载的Ping工具。一位读者反映，这项工具"虽然非常简单，但却在掌握网络对象的可达性方面非常有用。"</P>
<P>　　工具名称:<STRONG>OpenView</STRONG></P>
<P>　　公司名称:HP</P>
<P>　　网址:http://www.openview.hp.com</P>
<P>　　推荐理由:HP　OpenView受到推荐是因为它可以提供"非常好且非常易好用的映像"。另一个原因是"可以对其进行编程，来做你想要做的任何事情"，尤其是在出现问题时将相关性信息通过E-mail进行报警。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工具名称:<STRONG>NetScout</STRONG></P>
<P>　　公司名称:NetScout</P>
<P>　　网址:http://www.netscout.com</P>
<P>　　推荐理由:一位读者推荐NetScout，是因为它具有良好的故障检测和性能管理功能。这位读者说:"虽然它是软件和硬件的融合体，但却能与大多数的网络元件(交换机和路由器)协调工作，而且，大家从一个视图就能了解企业的运行状况。"</P>
<P>　　工具名称:<STRONG>Servers Alive</STRONG></P>
<P>　　公司名称:Woodstone</P>
<P>　　网址:http://www.woodstone.nu/salive/</P>
<P>　　推荐理由:一位读者称，它之所以喜欢Servers Alive，是因为它很简单，能够很好地完成网络事件任务和进行状态监控，此外，它</P>
<P>　　的安装相对来讲也很容易。他经营着一个小网络，发现这个简单而便宜的工具在他的小网络环境里运行得非常好，并可通过邮件组获得支持。</P>
<P>　　工具名称:<STRONG>SNMPc Enterprise</STRONG></P>
<P>　　公司名称:Castlerock Computing</P>
<P>　　网址:http://www.castlerock.com</P>
<P>　　推荐理由:一位用户在推荐SNMPc Enterprise时表示:"与其他的大家伙相比，它更加易用，而且相当便宜。它的可扩展性非常惊人，使用它的新版本更容易管理网络管理系统本身。"他认为该工具的唯一不足就是，它只能在Windows下运行。但你只需花极少的时间就可以习惯这个软件包，一旦习惯了之后，用起来就更加容易了。</P>
<P>　　工具名称:<STRONG>NexVu</STRONG></P>
<P>　　公司名称:NexVu</P>
<P>　　网址:http://www.nexvu.com</P>
<P>　　推荐理由:有读者称NexVu"是我们曾使用过的工具之中最有趣的一项工具,它可以是性能监控工具、协议分析工具、RMON探头以及终端服务器......所有这些功能都融为一体"。作为探测工具的备份选择，它非常具有吸引力。此外，它还可以提供有关该读者的Siebel应用系统的实时性能报告。</P>
<P>　　工具名称:<STRONG>Qcheck、Chariot</STRONG></P>
<P>　　公司名称:NetIQ</P>
<P>　　网址:http://www.netiq.com</P>
<P>　　推荐理由:有一位读者在推荐NetIQ Qcheck和Chariot时称，Qcheck是一项免费工具，"它超级简单，能够极快地对两个主机之间的网络性能进行检查，与故障检修工具一样棒"。他说他的求助台使用的就是这种工具。它要求在被测主机上安装endpoint代理。这些endpoint是免费的，而且可供各种各样的系统使用。他说:"我曾要求在我们企业里的每台台式机和服务器上装载这样的endpoint，从而减少了故障检修的次数。"关于Chariot，他说，Chariot"可以对我们所能想象得到的任何网络进行压力测试。它在概念设计和论证方面表现的非常好。添加Sniffer插件之后，就可以使用实际数据对网络进行测试，更不用说它的易用性了。"提醒大家注意的是，在把这种工具交给未经培训的新手之时，你必须格外小心，因为它"几乎可以把任何网络都给踩成碎片"。</P><img src ="http://www.cnitblog.com/201/aggbug/5791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2005-12-26 13:12 <a href="http://www.cnitblog.com/201/archive/2005/12/26/5791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>