waterye

          2008年10月5日 #

          使用rsync+ssh同步n個文件

          rsync -avz -e ssh bak@192.168.0.138:/home/res /home/res/bak

          posted @ 2009-12-29 20:24 waterye 閱讀(524) | 評論 (0)編輯 收藏

          mysql備份

          1. 使用Replication進行實時備份
          參考mysql docs
          2. 定期在slave上使用shell,mysqldump,sftp,crontab進行永久備份
          #!/bin/sh
          export d
          =`date +%Y%m%d%H%M%S`
          mkdir 
          -/data/dbbak/baktables/$d
          for i in `echo "show tables" | mysql -u bak -ppassword db|grep -v Tables`;
          do    
            echo $i; mysqldump 
          --add-drop-table --allow-keywords ----u bak -ppasswod mbook_hd $i > backup/$d/$i.sql
          done

          tar czf backup
          /$d.tar.gz backup/$d/
          rm 
          -rf backup/$d/

          lftp 
          -"cd /dbbak/; mput -c $d.tar.gz; quit" -u bak,password sftp://192.168.0.138
          參考http://ocaoimh.ie/simple-mysql-backup/
          10G級別的可以每天作一次備份,100G級別看帶寬和硬盤,T級沒有經驗

          posted @ 2009-12-29 20:17 waterye 閱讀(1062) | 評論 (0)編輯 收藏

          檢查哪些文件以\n結束

          #!/usr/bin/env python
          import string, os, sys  
             
          dir 
          = '/home/waterye/works/'  

          files 
          = os.listdir(dir)
          for f in files:
              
          if not os.path.isfile(dir+os.sep+f): continue
              linecount 
          = 0
              fp 
          = open(dir+os.sep+f,'r')
              
          for line in fp:
                  linecount 
          += 1
              fp 
          = open(dir+os.sep+f,'r')
              
          for i,line in enumerate(fp):
                  
          if (i==linecount-1 and line.endswith('\n')):
                      
          print f
                      
          print "--------------------------------"
          * bash太難理解,還是用py看上去舒服,雖然不專業,但能完成任務就行

          posted @ 2009-02-19 22:33 waterye 閱讀(920) | 評論 (0)編輯 收藏

          perl milliseconds

          "perldoc DateTime" would have told you how to format milliseconds.

            
          use DateTime;
            
          use Time::HiRes qw(time);
            
          my $dt = DateTime->from_epoch( epoch => time() );
            
          print $dt->strftime('%Y-%m-%d %H-%M-%S-%3N'), "\n";

          * sudo apt-get install libdatetime-perl

          perl真麻煩

          posted @ 2008-12-04 23:33 waterye 閱讀(1076) | 評論 (0)編輯 收藏

          memcached java client

          1. http://www.whalin.com/memcached/ v2.0.1
          2. http://code.google.com/p/spymemcached/ v2.2

          a. 使用whalin版會導致File Descriptor leak,而使用spy版則不會,原因是whalin版沒有使用selector管理socketchannel.
                 Thread.sleep(1000 * 30);
                  System.out.println(
          "begin");

                  Selector selector 
          = null;
                  SocketChannel channel 
          = null;
                  
          try {
                      String host 
          = "192.168.0.74";
                      
          int port = 11211;
                      
          int timeout = 1000 * 60;

                      selector 
          = Selector.open();
                      channel 
          = SocketChannel.open();
                      channel.configureBlocking(
          false);

                      channel.connect(
          new InetSocketAddress(host, port));
                      channel.register(selector, channel.validOps());

                      
          try {
                          selector.select();
                      } 
          catch (IOException e) {
                          e.printStackTrace();
                      }

                      Iterator it 
          = selector.selectedKeys().iterator();
                      
          int i = 0;
                      
          while (it.hasNext()) {
                          i
          ++;
                          System.out.println(i);
                          SelectionKey selKey 
          = (SelectionKey) it.next();
                          it.remove();

                          
          try {
                              processSelectionKey(selKey);
                          } 
          catch (IOException e) {
                              e.printStackTrace();
                              selKey.cancel();
                          }
                      }

                      System.out.println(
          "unclose");
                      Thread.sleep(
          1000 * 30);
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  } 
          finally {
                      
          if (channel != null && channel.isOpen()) {
                          
          try {
                              channel.close();
                          } 
          catch (Exception e) {
                              e.printStackTrace();
                          }
                      }
                      
          if (selector!=null) {
                          selector.close();      
          // not fd leak
                      }
                  }

                  System.out.println(
          "end");
                  Thread.sleep(
          1000 * 30 * 1);
          通過lsof -p pid | grep pipe可以觀察是否有fd leak.

          b. w版set 1000000 object 需要600s左右,s版只需150s左右

          posted @ 2008-10-31 19:55 waterye 閱讀(1555) | 評論 (2)編輯 收藏

          cacti-memcached

          192.168.0.74 [root avi]$ python /root/memcached/cacti-memcached-1.0/memcached.py localhost
          total_items:2002344 get_hits:3 uptime:50291 cmd_get:3 time:1224521129 bytes:58888890 curr_connections:1 connection_structures:8 bytes_written:16167008 limit_maxbytes:402653184 cmd_set:2002344 curr_items:1000000 rusage_user:101.730357 get_misses:0 rusage_system:199.092442 bytes_read:63849044 total_connections:314

          posted @ 2008-10-21 00:50 waterye 閱讀(1003) | 評論 (0)編輯 收藏

          ubuntu查看網絡流量

          1. iftop
          sudo apt-get install iftop
          sudo iftop -i ppp0
          2. slurm
          sudo apt-get install slurm
          slurm -i ppp0
          3. vnstat
          sudo apt-get install vnstat
          sudo chmod o+x /usr/bin/vnstat
          sudo chmod o+wx /var/lib/vnstat/
          vnstat -u -i ppp0
          vnstat -i ppp0
          vnstat -l -i ppp0

          因為不是server就沒有用復雜的mrtg

          posted @ 2008-10-05 22:19 waterye 閱讀(6283) | 評論 (3)編輯 收藏

          主站蜘蛛池模板: 乾安县| 上蔡县| 刚察县| 清苑县| 迭部县| 浙江省| 蕲春县| 遂昌县| 永善县| 手游| 乌兰察布市| 沁源县| 泰顺县| 万载县| 盱眙县| 自治县| 舟曲县| 天门市| 万安县| 崇仁县| 龙江县| 集安市| 高安市| 清河县| 平武县| 惠东县| 永春县| 通州市| 青河县| 冷水江市| 新龙县| 兰考县| 宽城| 虎林市| 孝昌县| 阿瓦提县| 九台市| 浠水县| 阆中市| 阳江市| 治县。|