使用Dropbox做为私有Git服务器

GitHub火的一塌糊涂,作为工程师社交圈的老大毫无争议。免费账户足够一般用户使用,但是所有文件都是public的,如果你有一些代码不方便公开,则需要付出每月$7的代价。不想花钱?可以试试Dropbox做为私有Git服务器。

没有Dropbox账户的同学可以点击后边的链接注册,https://db.tt/72YEydr,使用我的推荐链接注册,你我都能多获得500M空间,何乐而不为?

  1. 在Dropbox文件夹创建远程代码库并初始化

    1
    2
    3
    
    cd ~/Dropbox/Git
    mkdir progect.git
    git init --bare
    
  2. 在工作目录创建本地代码库(Dropbox文件夹外的地方)

    1
    2
    3
    
    mkdir /Documents/Git
    cd /Documents/Git
    git clone ~/Dropbox/Git/project.git project
    
  3. 测试

    1
    2
    3
    4
    5
    
    cd project
    touch README
    git add README
    git commit -m "fisrt commit"
    git push origin master
    
  4. 实现多人协作
    共享 /Dropbox/Git/project.git 文件夹,指定需要分享的用户,再次git clone即可。

  5. 其他说明

    • 关于—bare参数
      bare参数在初始化库时,将当前目录做为git的库目录,而不再建立一个.git子目录。

    • 关于Dropbox同步效率

      拜万能的墙所赐,Dropbox同步会出现同步滞后的现象,可以通过退出Dropbox程序并再次启动的方式解决。

为Linode Manager开启双因子认证

可能是受到近日被黑客攻击的影响,Linode“及时”开启了账号的双因子认证功能,实现步骤还是很简单的。

一、启用双因子认证功能

  1. 登陆到管理面板的my profile页;

  2. 向下找到Two-Factor Authentication;

  1. 点击Enable Two-Factor Authentication,启用后会得到一个Secret Key及一个二维码,保存好你的Secret Key;

在CentOS6上使用OpenLDAP统一管理服务器账户

安装OpenLDAP

  1. 创建管理OpenLDAP的用户和组

     groupadd ldap
     useradd -g ldap ldap
     passwd ldap
    
  2. 通过yum安装

     yum -y install openldap openldap-devel openldap-clients openldap-servers openssl nss_ldap
    
  3. 创建复制BDB数据库配置文件

     cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
     chown ldap:ldap /var/lib/ldap
     chmod -R 600 /var/lib/ldap
    

使用Dropbox备份网站

Dropbox注册过程省略。。。
欢迎使用我的注册邀请,成功注册并在计算机上安装后你我可分别多获得额外500M空间链接!http://db.tt/72YEydr

在Linux服务器上安装Dropbox

wget -O dropbox.tar.gz https://www.dropbox.com/download/?plat=lnx.x86
tar zxvf dropbox.tar.gz
mv .dropbox-dist /usr/local/dropbox

解决SecureCRT for Mac无法保存密码的问题

解决SecureCRT for Mac无法保存密码的问题

SecureCRT是常用的ssh工具,同样有对应Mac的版本,但是在使用中发现一个很别扭的问题—无法保存密码!百谷后发现SecureCRT for Mac默认使用Mac的Keychain保存密码,关闭之即可

  1. 打开SecureCRT for Mac的全局选项,Preferences;

  2. 在Advanced页签下,取消选中Use Keychain;

  3. 保存退出,完成。

转载:Instagram 架构分析笔记

作者: Fenng

网址: http://www.dbanotes.net/arch/instagram.html

Instagram 团队上个月才迎来第 7 名员工,是的,7个人的团队。

作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张。不得不说,这真他妈是个业界奇迹。

几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What Powers Instagram: Hundreds of Instances, Dozens of Technologies,披露了 Instagram 架构的一些信息,足够勾起大多数人的好奇心。读罢做点笔记,各种线索还是有一定参考价值的。能打开原文的建议直接读原文。

Instagram 开发团队奉行的三个核心原则

  • Keep it very simple (极简主义)
  • Don’t re-invent the wheel (不重复发明轮子)
  • Go with proven and solid technologies when you can(能用就用靠谱的技术)

OS/主机

操作系统的选择,在Amazon EC2上跑 Ubuntu Linux 11.04 (Natty Narwhal) ,这个版本经过验证在 EC2 上够稳定。因为只有三名工程师,只有三名工程师,所以自己部署机器到 IDC 是不靠谱的事情。幸好有亚马逊。

负载均衡

此前曾用过两台 Nginx 做 DNS 轮询承载前端请求,这样做会有副作用,现在已经迁移到Amazon的ELB(Elastic Load Balancer),起了三个 Nginx 实例,在 ELB 层停掉了 SSL , 以缓解 CPU 压力。DNS 服务使用 Amazon Route53 服务。

应用服务器

启用了 25 个 Django 实例,运行在 High-CPU Extra-Large 类型的服务器实例上,之所以用 High-CPU Extra-Large 实例是因为应用请求是 CPU 密集型而非 IO 密集型。

使用 Gunicorn 作为 WSGI 服务器。过去曾用过 Apache 下的 mod_wsgi 模块,不过发现 Gunicorn 更容易配置并且节省 CPU 资源。使用 Fabric 加速部署。

数据存储

用户信息、图片元数据、标签等大部分数据存储在 PostgreSQL 中。主要的 Shard 数据库集群有 12个节点。

实践中发现 Amazon 的网络磁盘系统单位时间内寻道能力不行,所以有必要将数据尽量放到内存中。创建了软 RAID 以提升 IO 能力,使用的 Mdadm 工具进行 RAID 管理。

管理内存中的数据,vmtouch 这个小工具值得推荐。

PostgreSQL 设置为 Master-Replica 方式,流复制模式。利用 EBS 的快照进行数据库备份。使用 XFS 文件系统,以便和快照服务充分配合。 使用 repmgr 这个小工具做 PostgreSQL 复制管理器器。

连接池管理,用了 Pgbouncer。Christophe Pettus 的文章包含了不少 PostgreSQL 数据库的信息。

TB 级别的海量图片存储在 Amazon S3 上,CDN 采用的也是 Amazon 的服务,CloudFront。

Instagram 也是 Redis 的重度用户,Feed 以及 Session 信息都用 Redis 处理,Redis 也是以 Master-Replica 方式部署。在 Replica 节点上进行数据备份。

使用了 Apache Solr 承担 Geo-search API 的工作,Solr 简单的 JSON 接口也不错。

缓存使用了 6 个 Memcached 实例,库使用 pylibmc 和 libmemcached。亚马逊也提供缓存服务-Elastic Cache service ,Instagram 也有尝试,不过不便宜。

任务队列/发布通知

队列服务使用 Gearman ,通知系统则使用 pyapns 来实现。

监控

前面提及的服务器实例数量加起来,的确有100多个,有效的监控是相当有必要的。使用 Munin 作为主要监控工具 , 也写了不少定制插件,外部监控用 Pingdom 的服务。通知服务使用 PagerDuty。

对于 Python 的错误报告,使用 Disqus 团队开源的 Sentry 来处理。

几个感想

0)轻装上阵说起来容易,做起来非常难。这也是 Instagram 团队目前最令人着迷的地方;

1)Python 社区已经足够成熟,各个环节上都已经有不错的解决方案了。

2)如果要问我最大的一个感慨,我要说:Amazon 真是一家伟大的公司,甚至比 Google 还伟大。

—EOF—

Dell iDRAC6 安装配置简介

iDRAC简介

Integrated Dell™ Remote Access Controller6 (iDRAC6) 是一种系统管理硬件和软件解决方案,用于为 Dell PowerEdge™ 系统提供远程管理功能、崩溃系统恢复和电源控制功能。

iDRAC6 在远程监测/控制系统中使用集成的片上系统微处理器。iDRAC6 与受管 PowerEdge 服务器共存于系统板上。服务器操作系统负责执行应用程序;iDRAC6 负责监测和管理操作系统之外的服务器环境和状态。

可以配置 iDRAC6 向您发送电子邮件或简单网络管理协议 (SNMP) 陷阱警报来通知警告或错误。为帮助诊断系统崩溃的可能原因,iDRAC6 可以在检测到系统崩溃时记录事件数据并捕获屏幕图像。

默认情况下,启用的 iDRAC6 网络界面使用静态 IP 地址 192.168.0.120。必须对其进行配置,才能访问 iDRAC6。当在网络上配置 iDRAC6 后,可以通过 iDRAC6 Web 界面、Telnet 或 Secure Shell (SSH) 和支持的网络管理协议(如智能平台管理接口 [IPMI])以分配的 IP 地址对其进行访问。
服务器默认配置是iDRAC6 Express,要享受更多高级功能,需要购买iDRAC6 Enterprise版。

日志分析系统Rsyslog+LogAnalyzer+LogCheck的部署

一、相关软件包准备

Rsyslog 5.8.9

    wget http://www.rsyslog.com/files/download/rsyslog/rsyslog-5.8.9.tar.gz
`</pre>

LogAnalyzer 3.4.1

<pre>`    wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.1.tar.gz
`</pre>

LogCheck 1.1.2

<pre>`    wget http://sourceforge.net/projects/logcheck/files/latest/download?source=files
`</pre>

Eventsys 4.4.3

<pre>`    wget http://eventlog-to-syslog.googlecode.com/files/EvtSys_4.4.3_32-Bit-LP.zip
`</pre>

#### 二、服务器端安装配置
  1. LAMP系统部署
    略。
  2. Rsyslog安装
    cd /usr/local/src/
    tar zxvf rsyslog-5.8.9.tar.gz &amp;&amp; cd rsyslog-5.8.9
    ./configure --enable-mysql
    make &amp;&amp; make install
    ln -s /usr/local/sbin/rsyslogd /sbin/rsyslogd
    cp rsyslog.conf /etc

    配置rsyslog.conf:
    vim /etc/rsyslog.conf
    $ModLoad immark
    $ModLoad imuxsock
    $ModLoad imklog
    $ModLoad ommysql
    *.*       :ommysql:localhost,Syslog,uid,password
    local7.*                                            /var/log/boot.log
    *.*                                                     /data/logs/messages
    $ModLoad imudp.so
    $UDPServerRun 514

    确保514端口可用或iptables关闭
    建立rsyslog启动脚本
    cp -rp /etc/init.d/syslog /etc/init.d/rsyslog
    sed -i 's/syslog/rsyslog/g' /etc/init.d/rsyslog

    导入数据库
    cd /usr/local/src/rsyslog-5.8.9/plugins/ommysql
    mysql -u root -p &lt; createDB.sql

    关闭syslog
    service syslog stop

    启动rsyslog
    service rsyslog start

    检查SystemEvents表,如果有数据则成功
  3. LogAnalyzer安装
    mkdir /data/www/wwwroot/loganalyzer
    cd /usr/local/src/
    tar zxvf loganalyzer-3.4.1.tar.gz &amp;&amp; cd /usr/local/src/loganalyzer-3.4.1/src
    cp -r * /data/www/wwwroot/loganalyzer
    cd ../contrib
    cp * /data/www/wwwroot/loganalyzer
    cd /data/www/wwwroot/loganalyzer
    chmod 755 *.sh
    ./configure.sh
    ./secure.sh
    chmod 666 config.php
    chown -R www.www /data/www/wwwroot/loganalyzer

    浏览器访问LogAnalyzer服务器地址,进行下一步安装。安装过程中注意大小写!
  4. LogCheck安装

    `mkdir -p /usr/local/logcheck/bin /usr/local/logcheck/etc /usr/local/logcheck/tmp
    cd /usr/local/src/
    tar zvxf logcheck-1.1.2.tar.gz && cd logcheck-1.1.2
    sed -i 's/local/local\/logcheck/g' Makefile
    make linux
    `
    修改logcheck.sh
    `sed -i 's/\=\/usr\/local/\=\/usr\/local\/logcheck/g' logcheck.sh
    vim logcheck.sh
    #管理员邮箱
    SYSADMIN=root,admin@test.com
    #注释以下三行
    $LOGTAIL /var/log/messages > $TMPDIR/check.$$
    $LOGTAIL /var/log/secure >> $TMPDIR/check.$$
    $LOGTAIL /var/log/maillog >> $TMPDIR/check.$$
    添加一行
    $LOGTAIL /www/messages > $TMPDIR/check.$$
    `
    加入计划任务
    `crontab -e
    0 0 * * */usr/local/logcheck/etc/logcheck.sh  > /dev/null 2>&1
    `
    清除日志脚本
    `#!/bin/bash
    #delete syslog
    MesDate=$(date -d '30 days ago' +%Y-%m-%d)
    SqlDate=$(date -d "-1 week" +%m-%d)
    Mes=/www/messages
    mysql -uroot -proot -e "delete from Syslog.SystemEvents where       DATE_FORMAT(DeviceReportedTime,'%m-%d') like '%${SqlDate}%';"
    sed -i "/${MesDate}/d" ${Mes}
    `
    确保sendmail启动
    `service sendmail start
    chkconfig --add sendmail
    chkconfig sendmail on
    `

    三、客户端安装配置

  5. Linux客户端安装配置
    修改/etc/syslog.conf

    `echo "*.* @rsyslog_server_ip" >> /etc/syslog.conf
    `
  6. Windows客户端安装配置

    *   下载安装客户端软件
    

    wget http://eventlog-to-syslog.googlecode.com/files/EvtSys_4.4.3_32-Bit-LP.zip

    • 解压后将evtsys.dll和evtsys.exe拷贝到c:\windows\system32
    • 安装evtsys
      C:>evtsys –i –h rsyslog_server_ip
      #-i 安装为系统服务
      #-h 指定日志服务器IP地址
    • 启动服务:
      `C:\>net start evtsys
      `
    • 卸载evtsys
      `c:\net stop evtsys
      c:\evtsys -u

四、参考:

  1. http://bbs.linuxtone.org/thread-10784-1-1.html
  2. http://bslxn.i.sohu.com/blog/view/178279376.htm