Linux

  • 网络配置
    1. 主机名:vi /etc/hosts,配置内网服务主机,hostname命令可以查看本机名
      ip host #映射host到ip
    2. 域名解析:vi /etc/resolv.conf
      重启网络服务:service network restart
      search localdomain
      nameserver 203.102.224.68
    3. 网络地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0
      IPADDR=116.255.202.226
      NETMASK=255.255.255.224
      GATEWAY=116.255.202.225
    4. 关闭外网端口:开启防火墙,手动添加需要开放的端口
      开机时防火墙状态:chkconfig iptables on|off
      手动开启或关闭防火墙:service iptables status|start|stop
      添加开放端口:vi /etc/sysconfig/iptables,如22-ssh、80-http、443-https、3306-mysql、
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
  • 机器配置
    1. 硬件信息:dmidecode,1机器型号,4CPU型号、速度、缓存、双核及63位支持,17内存容量;lspci|grep Ethernet网卡;
    2. 操作系统:uname -a,系统内核版本、64位;cat /etc/issue,什么Linux发行版;
    3. 存储系统:df -hlT,硬盘使用情况;free -m,内存使用情况;du -sh,文件大小
    4. 系统监视:netstat -lntp网络端口,lsof文件句柄,ps -ef进程列表,
    5. 编码:vi /etc/sysconfig/i18n,修改LANG="zh_CN.UTF-8",中文语言zh_CN编码UTF-8;vi /etc/profile,环境变量export LANG=zh_CN.UTF-8,查看系统编码echo $LANG(客户端ssh设置对应编码即可避免控制台乱码);file fileName.ext,查看文件编码,iconv -f UTF-8 -t GB2312 a.jsp -o a.jsp.gb2312,转换文件编码(通常项目文件编码UTF-8,而系统编码可能为GB2312);删除乱码文件节点号ll -i,删除find . -inum 节点号 -exec rm {} \;,重命名-exec {} name \;。
    6. 时间date,日历cal [[day] month] year
      更新时间和日期ntpdate cn.pool.ntp.org
      手动设置时间date -s "2012-10-18 17:32"
  • 常用命令:
    1. 自动运行:
      自动启动:vi /etc/rc.d/rc.local,比如启动nexus、jenkins、website等
      /usr/local/nexus/bin/nexus start #nexus自带jetty容器
      /usr/local/tomcat-jenkins/bin/startup.sh #jenkins有war用在tomcat容器
      环境变量:vi /etc/profile,比如添加java、ant、maven、jenkins
      export JAVA_HOME=/usr/local/jdk1.6.0_24 #若想在服务器上svn up并mvn package就需要JDK
      export JRE_HOME=/usr/local/jdk1.6.0_24/jre
      export PATH=$PATH:/usr/local/jdk1.6.0_24/bin
      export CLASSPATH=./:/usr/local/jdk1.6.0_24/lib:/usr/local/jdk1.6.0_24/jre/lib #某些项目依赖tools.jar等在这里引入
       
      export ANT_HOME=/usr/local/apache-ant-1.8.3 #使用ant和build.xml构建项目
      export PATH=$ANT_HOME/bin:$PATH
       
      export M2_HOME=/usr/local/apache-maven-3.0.4/ #使用mvn package和pom.xml构建项目
      export MAVEN_OPTS="-Xms256m -Xmx512m -Dfile.encoding=UTF-8"
      export PATH=$M2_HOME/bin:$PATH

      export JENKINS_HOME=/web/jenkins #自动构建系统jenkins保存任务jobs的目录,jenkins运行远程脚本sh时需要source /etc/profile
      系统服务:ll /etc/rc.d/init.d,service start mysql启动
      chkconfig --list [name]显示服务及运行状态,chkconfig name on|off重启时开启或关闭服务
      service --status-all显示正在运行的服务,service name status|start|stop手动控制服务(比如iptables防火墙)
    2. 后台运行:
      setsid command >> log 2>&1 &,更改父进程为非当前shell(关闭当前shell后不影响原命令运行),日志附加到log(以后可以查看日志),错误重定向到log(2代表错误输出)
      运行jar包,-cp参数注意Windows是分号;而Linux是冒号:而jar包manifest则是空格 分隔多个依赖包;
    3. 用户管理:useradd name,/etc/passwd,添加(会建立目录/home/name);passwd name,改密;usermod -g group name,改组;usermod -s /sbin/nologin name,禁用;usermod -e 2012-04-01 name,期限;userdel name,删除用户;id|who am i我是谁,who|w还有谁;
    4. 文件查看:ll -t,更新排序文件;cat file|grep ^[^#]或cat file|grep -v ^#,过滤注释仅显示配置;ls /data/*/ | wc -l,统计data下所有目录内文件总个数;ls /data -t -r | head,查看文件时间范围;
      查看文件某几行:cat -n file|more +10|head -5,显示行号,从第10行开始查看5行内容(nl file加行号)
      去掉注释和空行:nl file|grep -v (^#|
    5. 文本编辑vi:一般模式,编辑模式,命令行模式:command
      • 编辑保存:i a进入编辑模式,ESC退出编辑模式;一般模式:x左删,dd行剪切,yy行复制,p粘贴,o前插行O后插行,u撤销ctrl+r重做
      • 移动光标:h左j下k上l右,0行首^词首$行尾g词尾,we单词移动,-上行+下行,:12定位行,屏幕内移动H上M中L下,*#找光标处单词,%按括号({[匹配移动,:nu查看当前行号(ctrl+G更方便)
      • 翻页:ctrl+(b上页f下页ud半页),gg首行G末行,
      • 查找替换:/word查找单词,?向前找:n下一个N上一个,:n1,n2s/word/replace/gn行范围统计,:n,$s/word//gn行至结尾统计,%s/word//gn全局统计
    6. 定时任务:crontab -e编辑定时文件,内容格式:分0~59 时0~23 日1~31 月1~12 星期0~7 fileg
      */10 * * * * /home/task.sh << /home/task.log,每隔10分钟;30 10 * * *,每天十点半
      运行日志:tail -f /var/log/cron,脚本日志:使用echo打印到控制台,cron再重定向到log日志
    7. 网络下载:
      • curl:类似的还有wget
        下载网页:curl url > file,curl -o file url,设置代理:curl -x host:port url
        存储Cookie:curl -D cookie1.txt url,使用Cookir:curl -D cookie2.txt -b cookie1.txt url
        浏览器信息:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" url
        来源信息:curl -e "refer_url" url,防止反盗链
        下载多个文件:curl -O url/[1-10].jpg,下载十张图片自动命名
        下载多级文件:curl -o #1_#2.jpg url/{aaa,bbb}/[1-10].jpg,命名aaa_1.jpg等避免覆盖
        断点续传:curl -c -O url,自动命名,掉线后
        分块下载:curl -r 0-10240 -o "a.part1" url,curl -r 10240- -o "a.part2 url,需手动合并
        FTP下载:curl -u user:pwd ftp://ip:port/path/file,curl ftp://user:pwd@ip:host/path/file
        FTP上传:curl -T localfile -u user:pwd ftp://ip:port/path

    8. 安装卸载:
      • 源码安装tar.gz:
        打包tar -cvf file.tar dir,-zcvf tar.gz,-jcvf tar.bz2,查看tar -ztvf,解包tar -zxvf tar.gz path,解war:jar -xvf *.war
        解包:tar -zxvf file.tar.gz;通常可以创建软连接:ln -s dir link
        配置:./configure,会生成Makefile供编译用;--help可选项,--prefix=安装目录,
        编译:make,安装:make install
        清理:make clean,卸载:make uninstall,需要源码Makefile
      • 安装包rpm:
        安装:rpm -ivh file.rpm,强制安装参数--nodeps --force
        查询:rpm -q -a | grep key
        卸载:rpm -e file,-nodeps依赖关系可能导致无法卸载,忽略依赖关系时可能影响其他软件的使用
      • 自动管理依赖的安装方式yum -y install subversion
  • 脚本编写:
    1. 锁定文件保证单例运行:可用于服务器间同步资源时
      if [ -f lock_file ]; then
      echo "shell working..."
      else
      cat /dev/null > log_file #清空日志
      # do job #做事
      rm -f lock_file
      fi
      判断目录是否存在:[ ! -d /mysqlbak/ ],检查目录参数非空:[ ! -z $1 ],检查pid值:[ $pid ]
      检查任务pid以便kill:`cat task.pid`,`ps aux|grep /usr/local/tomcat-soyinke-message|grep -v grep| awk '{print $2}'`
    2. 遍历目录更新svn,可用于做svn定时备份
      dir="/svn-base"
      for project in $dir/* ;do
      svn up $project
      done
      while循环,支持while true/do/if break/done
      i=0
      while [ $i -lt 10 ]
      do
      i=`expr $i + 1` #使用expr计算循环变量值
      echo "sleep $i..."
      done
    3. rsync同步服务器文件:后台方需要运行rsync --daemon监听请求,操作方可以推push、拉pull
      -t保留时间、-r递归目录、-u更新同步、-p保留权限、-z压缩传送
      推:rsync -ztrulp --progress --password-file=/etc/rsync.secret /path/from rsync@192.168.7.137::model-to --log-file=log_file
      拉:rsync -ztrulp --progress --password-file=/etc/rsync.secret rsync@192.168.7.137::model-from /path/to >> log_file
      后台方需要有/etc/rsyncd.conf配置model,/etc/rsyncd.secrets账户验证,这些文件需要有正确的权限chmod 600 /etc/rsync*
      #/etc/rsyncd.conf
      uid = nobody
      gid = nobody
      use chroot = no
      max connections = 7
      pid file = /var/run/rsyncd.pid
      lock file = /var/run/rsync.lock
      log file = /var/log/rsyncd.log
       
      [mp3] #模块名,推送的目的及拉取的来源都使用模块名rsyncuser@host::model
      path = /web/mp3/ #模块对应路径
      comment =mp3
      ignore errors
      read only = no
      list = yes
      auth users = rsyncuser
      secrets file = /etc/rsyncd.secrets #操作方提供的用户和密码分别与这两行验证
      hosts allow = 192.168.7.136 #限制推送方ip
      transfer logging = yes #记录日志
      log format = "%a %f %l" #日志格式

      #/etc/rsyncd.secrets,后台方使用的账户验证文件
      rsyncuser:homestar@soyinke.com
      #/etc/rsync.secrets,操作方使用用户及密码与后台方进行验证
      homestar@soyinke.com
    4. scp方便在服务器间传输文件
      发送文件:scp local_file remote_user@remote_host:remote_folder_or_file
      发送目录:scp -r local_folder remote_user@remote_host:remote_folder
      拉取文件:scp remote_user@remote_host:remote_file local_folder_or_file
      拉取目录:scp -r remote_user@remote_host:remote_folder local_folder
      传输时需要输入密码,如果目标路径缺少用户名时也需要输入,使用下面的Expect+Tcl可以自动输入密码

  • JDK
    1. 下载j2sdk-1_4_2_04-linux-i586-rpm.bin
    2. 添加执行权限:chmod +x j2sdk-1_4_2_04-linux-i586-rpm.bin
    3. 执行bin生成rpm:./j2sdk-1_4_2_04-linux-i586-rpm.bin
    4. 添加执行权限:chmod +x j2sdk-1_4_2_04-linux-i586.rpm
    5. 执行rpm安装:rpm -ivh j2sdk-1_4_2_04-linux-i586.rpm
    6. 按Enter同意授权,选择安装目录:/usr/java/j2sdk1.4.2_04
    7. 设置环境变量/etc/profile,也可在/etc/profile.d/下建立j2skd.sh并添加执行权限chmod 755 /etc/profile.d/j2sdk.sh

      export JAVA_HOME=/usr/java/j2sdk1.4.2_04
      export JRE_HOME=/usr/local/jdk1.6.0_24/jre

      export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc

      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    8. 测试安装:java -version
  • MySQL
    1. 下载:MySQL-server-5.1.63-1.glibc23.x86_64.rpm服务器,MySQL-client-5.1.63-1.glibc23.x86_64.rpm客户端
    2. 添加权限、执行安装、卸载:建议以rpm方式安装并设置密码
      若安装出现冲突可选择强制安装rpm -ivh file --nodeps --force
      chmod +x MySQL-server-5.1.63-1.glibc23.x86_64.rpm
      rpm -ivh MySQL-server-5.1.63-1.glibc23.x86_64.rpm
      rpm -e MySQL-server-5.1.63-1.glibc23
      安装完成后运行/usr/bin/mysql_secure_installation设置管理员密码
    3. 下载源码(更占硬盘):mysql-5.1.63.tar.gz
      mysql用户及组、解压、指定安装目录:耗时
      groupadd mysql
      useradd -g mysql mysql
      tar -zxvf mysql-5.1.63.tar.gz
      cd mysql-5.1.63
      ./configure --prefix=/usr/local/mysql
      make
      make install
    4. 指定数据目录:rpm方式为/usr/share/mysql/my-huge.cnf
      cp support-files/my-medium.cnf /etc/my.cnf
      cd /usr/local/mysql
      chown -R mysql .
      chgrp -R mysql .
      bin/mysql_install_db --user=mysql
      chown -R root .
      chown -R mysql var
      bin/mysqld_safe --user=mysql &
    5. 开机启动服务
      cp support-files/mysql.server /etc/rc.d/init.d/mysql
      chmod +x /etc/rc.d/init.d/mycql
      chkconfig --add mysql
      service mysql start|stop|status
    6. 设置密码及远程访问:执行/usr/bin/mysqld_safe后可以直接修改mysql.user
      /usr/bin/mysqladmin -u root password 'new-password'
      mysql -uroot -p pass

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
      FLUSH PRIVILEGES;
  • Ant
    1. tar -zxvf apache-ant-1.8.3-bin.tar.gz
    2. vi /etc/profile
      export ANT_HOME=/usr/local/apache-ant-1.8.3
      export PATH=$ANT_HOME/bin:$PATH
  • Maven
    1. tar -zxvf apache-maven-3.0.4-bin.tar.gz
    2. vi /etc/profile
      export M2_HOME=/usr/local/apache-maven-3.0.4/                                  
      export MAVEN_OPTS="-Xms256m -Xmx512m -Dfile.encoding=UTF-8"                    
      export PATH=$M2_HOME/bin:$PATH
  • Nexus
    1. tar -zxvf nexus-2.0.3-bundle.tar.gz
    2. vi conf/nexus.properties修改端口和工作目录
    3. uname -a,查看系统信息,进入/bin/jsw对应目录启动sh nexus start
  • Svn
    1. yum -y install subversion,使用yum list|grep subversion查看安装状态
    2. 开放svn服务端口
      /sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
      /sbin/service iptables save
    3. svnadmin create /svn-repos/account,创建版本库
    4. svnserve -d -r svn-repos --listen-host 127.0.0.1,启动版本库服务
    5. svn list svn://127.0.0.1/account/trunk,检测版本库是否可用
    6. 客户端功能:首次执行会提示用户名和密码
      svn checkout svn-url检出
      svn update更新
      svn info插件当前代码版本
  • Jenkins
    1. 复制jenkins.war到tomcat发布目录,配置项目上下文Context
      直接运行:java -jar jenkins.war --httpPort=8082
    2. 系统管理 =》系统设置:
      • 主目录:JENKINS_HOME,任务保存。
      • 配置JDK、Ant、Maven安装目录。
    3. 任务脚本:安装ssh plugin插件后可运行指定机器上的sh脚本,先在全局设置中添加remote host(port=22)
      • 项目构建:自定义路径变量,退出tomcat,更新svn,构建maven,复制并重启tomcat
      • 项目备份:定时执行svn up命令;数据库备份:定时执行mysqldump命令;定时任务可交给crontab实施
  • Nginx:
    1. 安装:默认路径prefix/conf/nginx.conf,prefix/logs/nginx.pid,prefix/logs/error.log,prefix/logs/access.log,
      ./configure --prefix=/usr/local/nginx
      make; sudo make install
    2. Windows版本:解压后start nginx,控制nginx -s stop|quit|reopen|reload
    3. 配置:
      • 代理与重定向
        http{
        index index.php index.htm index.html; #index可以被多个server共享,html可有wget抓取jsp获得
        server{
        root /web/proj/; #root可以被多个location共享
        server_name domain.com;
        #location / {try_files $uri $uri/ /index.html;} #依次判断文件存在即返回try_files比if(!-f $request_filename)更好
        #location ~ .*\.(js|css|ico|jpg|jpeg|png|gif|swf|rar) {root dir;} #处理静态资源,建议代理动态请求,其余全由nginx处理,从root返回资源即可
        location ~ .*\.(do|jsp)$ {proxy_pass http://localhost:8081;} #将.do和.jsp请求代理给tomcat
        rewrite ^/book/(.*?).html$ /book/$1.do last;#重写url,搜索引擎更喜欢独立的html页面,而重写体现其实质是动态请求
        }
        server{
        server_name www.domain.com;
        return 301 $schema://domain.com/$request_uri; #永久跳转到域domain.com
        }
      • 代理给php下载文件:下载时需要指定文件名,又避免绕tomcat到servlet,php脚本效率高些(加密路径下载lighttpd效率更高)
        1,配置php.ini:cgi.fix_pathinfo=1,linux中可用lighttpd、fastcgi.conf模块、/user/bin/php-cgi解释php,windows可用nginx代理给php-cgi.exe
        启动php-cgi服务:php-cgi -b 127.0.0.1:9000 -c php.ini
        2,配置nginx代理:listen 81; server_name localhost;
        location ~ \.php$ {
        root D:\Hongwei\project\works\chineseall\DTTSSite\doc;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;}
        配置fastcgi_params:添加fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        3,编辑dl.php
        #下载文件名:参考lighttpd下的dl.php
        Header("content-type:application/octet-stream");
        Header("Accept-Ranges: bytes");
        header('Content-Length: '.filesize($file_on_harddisk));
        $file=fopen($file_on_harddisk,"r");
        echo fread($file,filesize($file_on_harddisk));//读取文件内容并吐给浏览器
        fclose($file);
        4,生成下载地址:http://localhost:81/dl.php?f=path&n=name&m=md5&t=time,规则可自定义
      • gzip压缩文本
          gzip on; 
          gzip_min_length  1k;
          gzip_buffers     4 16k;
          gzip_http_version 1.0;
          gzip_comp_level 2;
          gzip_types       text/plain application/x-javascript text/css application/xml;
          gzip_vary on;
      • log日志
        access_log off;#关闭日志可以在顶级、server、location等
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" ';#自定义日志格式
        access_log /web/log.txt access;#指定日志文件和格式
      • upstream
        轮询:分流到多个服务端,upstream www {server ip:port; server ip:port;}
        权重:根据权重分配请求,upstream www {server ip:port weight=10; server ip:port weight=20;}
        哈希地址:根据用户ip分配请求(固定分配到某个服务),可使session一致,upstream www{ip_hash;}
        响应时间分配:优先分配请求给响应快的服务,{fair;}
        哈希请求:固定某个uri到某个服务,可用于缓存系统,{hash $request_uri; hash_method crc32;}
  • Lighttpd:
    1. 安全下载模块secdownload
      • 下载地址格式:<uri-prefix>/<token>/<hex-timestamp>/<ref-path>
      • 生成下载地址:
        public static String gen_sec_uri(final String realPath) {
        String secret = "secret";
        String uri_prefix = "/dl/";
        String hextime = Long.toHexString(System.currentTimeMillis() / 1000);
        String token = toMD5(secret + realPath + hextime);
        return uri_prefix + token + "/" + hextime + realPath;
        }
      • 服务端模块配置:这里是lighttpd.conf,也可以编辑conf.d/secdownload.conf
          secdownload.secret          = "soyinke"
          secdownload.document-root   = "/web/mp3"
          secdownload.uri-prefix      = "/dl/"
          secdownload.timeout         = 300
      • 服务器端页面:dl.php,
        ob_start();#警告header写入时添加此行
        $secret = "secret";
        $f = "/mp3".$_REQUEST["f"];#实际资源路径
        $n = $_REQUEST["n"];#下载文件名
        $t =  hexdec($_REQUEST["t"]);#十六进制时间解析:$t = hexdec($t),当前时间:time(),计算差值可限制秒数
        $m= $_REQUEST["m"];
        $encoded_filename = str_replace("+", "%20", urlencode($n));
        $ua = $_SERVER["HTTP_USER_AGENT"];
        if  (strcmp($m,md5($secret.$f.$t)) == 0 && time()-$t<30) {#校对md5值及限时30秒
                if (preg_match("/MSIE/", $ua)) {
                    header( "Content-Disposition: attachment; filename=" . $encoded_filename);
                }else if (preg_match("/Firefox/", $ua)) {
                   header( "Content-Disposition: attachment; filename*=utf8''" . $n);
               }else{header( "Content-Disposition: attachment; filename=" . $encoded_filename );}
                Header( "X-LIGHTTPD-send-file: " . $f); #lighttpd识别x-send-file头部并返回文件内容,而nginx需要以php方式返回文件内容
        }
  • Apache
    1. 下载并tar -zxvf httpd-2.4.2.tar.gz
    2. 进入目录./configure --prefix=/usr/local/apache --enable-so(编译时加上加载模块参数),make,make install
      ./configure --help|grep mpm 性能优化核心模块:Multi-Processing Modules多道处理模块,MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}
    3. 配置自动启动服务
      vi /etc/rc.d/rc.local,添加/usr/local/apache/bin/apachectl -k start
      或者cp apache/bin/apachectl /etc/rc.d/httpd,chkconfig -add httpd,service httpd start | stop | restart
    4. 配置conf/httpd.conf:
      • ServerRoot "/usr/local/apache":程序目录,存放配置及日志
      • DocumentRoot "/usr/local/tomcat/webapps/Name":网站根目录
        虚拟目录配置(二级域名):指定别名及路径,如静态资源访问/art下的js|css等,wiki(php实现)

        <IfModule alias_module>
        Alias / "R:/TEMP/DTTSSite"
        </IfModule>
        <Directory "R:/TEMP/DTTSSite">
        Options Indexes FollowSymLinks MultiViews ExecCGI
        AllowOverride None
        order allow,deny
        Allow from all
        </Directory>
      • DirectoryIndex index.php index.html index.jsp:首页文件
      • Listen 127.0.0.1:80:监听本机端口
      • ServerName www.name.com:主机名或ip
  • Memcached:
    1. 安装:依赖libevent(异步事件通知库),源码目录执行./configure | make | make install即可
    2. 运行参数:-d 守护进程,-m 2048内存2G,-l localhost -p 11211 监听本机端口,-u root 运行用户,-c 1024并发连接数,-P memcached.pid 保存PID文件(kill 'cat memcached.pid'),2<&1表示错误重定向至标准输出
      /usr/local/bin/memcached -u root -l 192.168.7.137 -p 11211 -P /home/memcached.pid -vv << /home/memcached.log 2<&1
    3. 连接测试:telnet localhost 11211,command <key> <flags> <expiration> <bytes> <value> 命令语法,
      • set 设置值,add 仅未缓存时添加值,replace 仅已缓存时更新值,例:set key 0 0 7、"value"
      • get 获取值,delete 删除键,例:get key
      • gets 获取值并返回额外标识,cas 带额外标识更新值,若与gets标识不一致则更新失败
      • stats 缓存状态(get_hits/cmd_get命中率),flush_all 清空缓存,
    4. 性能调优:
      • stats查看状态,get_misses趋于平稳表示正常读写,若持续增加表示缓存内容不合适
      • watch "echo stats|nc host port",监视状态信息,查看各种数据的变化
  • Tomcat:可以多例运行并用apache分流,bin/catalina.sh里添加JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=256m"可以配置内存等。
    1. 解压:tar -zxvf apache-tomcat.tar.gz,重命名:mv apache-tomcat-6.0.20 tomcat-project
    2. 配置内存:vi bin/catalina.sh
      JAVA_OPTS="-Xmx2048M -Xms1024M -XX:PermSize=512M -XX:MaxPermSize=512M"
    3. 配置端口:vi conf/server.xml,tomcat有三个端口:shutdown、http、ajp,建议依序增加
      <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" enableLookups="false" maxThreads="500" useBodyEncodingForURI="true"/>
    4. 配置项目:vi server.xml或vi tomcat/conf/Catalina/localhost/project.xml
      <Context path="" docBase="DTTSSite" debug="0" allowLinking="true" />
    5. 启动:bin/startup.sh,停止:bin/shutdown.sh,查看:http://host:port/
  • Ftp
  • Expect+TCL:
    1. 依赖Tcl:http://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz/download
    2. 下载Expect:http://download.chinaunix.net/download/0003000/2845.shtml
    3. 安装Tcl:tar -zxvf,cd unix,./configure,make,make install
    4. 安装Expect:tar zxvf,./configure --with-tclinclude=/tcl/generic/ --with-tclconfig=/usr/local/lib,make,make install。注意这里--with参数用等号=而不是空格
    5. scp使用Expect语法在服务器间传送文件:
      #scp-base.sh 应答密码并传送文件
      expect -c "
              set timeout 9200000;
              spawn /usr/bin/scp -r $1 $4@$2:$3
              expect {
                      \"*yes/no*\" {send \"yes\r\"; exp_continue}
                      \"*password*\" {send \"$5\r\";}
              }
      expect eof;"
      #scp-136.sh 传送文件到136
      sh /home/user/scp-base.sh $1 192.168.1.136 $2 root password
      #scp-all.sh 多行命令向多个目标分发文件,用法sh scp-all.sh from to
      sh scp136.sh $1 $2
  • MediaWiki:
    1. 下载mediawiki-1.18.2.tar.gz,解压
    2. 配置Apache虚拟目录/wiki指向实际路径
      Alias /wiki "D:\Hongwei\project\data\mediawiki-1.18.2"
    3. 访问http://host:port/wiki配置数据库、管理员账户,下载配置文件LocalSettings.php
    4. 管理员登录,配置皮肤、编辑器、上传等
    5. 短禁止注册:$wgGroupPermissions['*' ]['createaccount'] = false;可在Special:UserLogin建账户
      禁止匿名编辑:$wgGroupPermissions['*' ]['edit'] = false;
    6. 配置界面信息Special:Allmessages,导航条:MediaWiki:Sidebar




posted @ 2012-08-28 18:42 xlongwei 阅读(...) 评论(...) 编辑 收藏
xlongwei