生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
1 安装git

yum -y install git

2 建立git用户

useradd -s /usr/bin/git-shell git

3 创建证书登录,方便提交版本

cd /home/git/
mkdir .ssh
vi .ssh/authorized_keys
# 把本地用户的公钥加进来
chown git:git -R .ssh
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

4 创建仓库

mkdir test.git
cd test.git/
git --bare init

chown git:git -R test.git

5 本地下载并提交

aquan:git hqlulu$ git clone git@server.domain:/path/to/test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
aquan:git hqlulu$ cd test/
aquan:test hqlulu$ vi a.txt
aquan:test hqlulu$ git add a.txt
aquan:test hqlulu$ git commit -m test
[master (root-commit) 14d99af] test
1 file changed, 1 insertion(+)
create mode 100644 a.txt
aquan:test hqlulu$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@server.domain:/path/to/test.git'
aquan:test hqlulu$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 198 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To server.domain:/path/to/test.git
* [new branch]      master -> master


6 备份本地库到远程并且添加远程库同步

#复制本地库镜像,比如这个Xcode项目刚开始只是本地git库
git clone --mirror ~/Xcode/ABC/
Cloning into bare repository 'ABC.git'...
done.

#同步文件到服务器,也可以是别的方式
rsync -av ABC.git server.domain::DIR/

#回到本地项目,添加远程库
git remote add origin git@server.domain:/path/to/ABC.git

Tags: ,
要配置一个postfix发邮件,需要以 xx@test.aslibra.com 发送邮件
同时提供smtp服务给局域网其它服务器提供发送邮件服务

引用
补充@20140104:
机器的hostname将会是发邮件的后缀,比如是 www.aslibra.com的机器,发邮件是 root@www.aslibra.com
可以把 www.aslibra.com 做别名 到 aslibra.com,域名生效后重启postfix,发邮件就是 root@aslibra.com


安装好postfix后,可以参考如下配置文件(去掉注释内容):

/etc/postfix/main.cf

myhostname = test.aslibra.com
mydomain = test.aslibra.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myorigin = $myhostname
inet_interfaces = all
unknown_local_recipient_reject_code = 550
relay_domains = $mydestination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
   PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
   xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES


PHP发送邮件可以使用phpmailer

include('libraries/class.phpmailer.php');

$mail = new PHPMailer();  
$mail->CharSet="UTF-8";
$mail->IsSMTP();                            // 经smtp发送  
$mail->Host     = $this->smtp_ip;           // SMTP 服务器  
$mail->SMTPAuth = false;          // 局域网不需要SMTP 认证  
$mail->From     = $from;  // 发信人  
$mail->FromName = $fromuser;        // 发信人别名  
$mail->Sender = $from;

$mail->AddAddress($to);  // 收信人  
if(isset($ccmail)){  
  $mail->AddCC($ccmail);  // cc收信人
}  
if(isset($bccmail)){  
  $mail->AddCC($bccmail);    // bcc收信人
}  

$mail->WordWrap = 50;  
$mail->IsHTML(true);                            // 以html方式发送  
$mail->Subject  = $title;                 // 邮件标题  
$mail->Body     = $content;                    // 邮件内空  

$mail->Send();


扩展阅读:

1 带smtp认证的postfix配置
http://hi.baidu.com/jedibd/blog/item/7b73ab25a7b7e06d35a80f45.html
2 CentOS下(PostFix)SMTP服务器的构建
http://www.fuancn.cn/html/ServerSettings/Linux/CentOS/20084288.html
3 phpmailer,smtp发送邮件实例
http://blog.51yip.com/php/910.html/comment-page-1
4 postfix邮件服务的基本配置
http://eastwalk.blogbus.com/logs/57585048.html
5 Postfix服务的基本配置
http://book.51cto.com/art/200904/118655.htm
6 telnet smtp发邮件
http://hi.baidu.com/guixiao_zhou/blog/item/49f8a73259a9f2210a55a9ec.html
7 簡易 Mail Server 架設 -- Postfix 設定
http://linux.vbird.org/linux_server/0390postfix.php
Tags: , ,
[转] 事情是这个样儿的,折腾了好几天就是搞不明白为啥设置了.ssh目录,在authorized_keys设置了key后登录还提示需要输入密码。捞干的,说怎么解决吧,注意权限,.ssh权限700,authorized_keys权限600,就OK啦!~~~~

chmod 700 ~/.ssh/
chmod 700 ~
chmod 600 ~/.ssh/authorized_keys


---------------------

一直很困惑要求输入密码,原来是不知道哪个操蛋的把root文件夹改777

drwxrwxrwx  11 root    root     4096 Nov 10 22:52 root

另外一个机器被改归属人,操蛋的

drwx------   7 mysql mysql 36864 10-26 15:03 root

参考:http://my.oschina.net/shootercn/blog/15418
Tags:
SAS硬盘可以热插拔,插入硬盘后,磁盘会立刻显示在fdisk -l 的列表里,可以立刻开始使用。
SCSI硬盘还没这么便捷,但也是可以做到不重启就加入使用的。

这里关系最大的是 /proc/scsi/scsi 文件
在linux系统里, /proc 的内容是系统运行状态等信息
修改它会导致立刻生效,比如支持包转发

目前服务器在用的硬盘有两个,分别插在0和1的插槽
加入的四个硬盘分别插到3-5的插槽
IBM的机器硬盘盒的螺丝凸起的,安装到DELL的硬盘盒里,有点凸起
插入机器里会有点紧,但可以正常使用

我们先看看 /proc/scsi/scsi的文件
[root@aslibra.com ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1x6 SCSI BP      Rev: 1.0
  Type:   Processor                        ANSI SCSI revision: 02


操作方法:
引用
我们以root权限执行 echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi  添加scsi设备

解释一下 scsi add-single-device a b c d 这个指令中的参数:                        
# 相反  scsi remove-single-device a b c d 是用来移除设备的

a ------- Host 是硬盘所在的SCSI控制器的编号,这里只有一个控制器,所以为0
b ------- Channel 硬盘所在SCSI通道的编号,这里是单通道,为0
c ------- Id 硬盘的SCSI ID号,就是插入的硬盘插槽编号,
d ------- Lun ,硬盘的lun号[logical unit number]即逻辑单元号,指的是一个用于SCSI总线的唯一的识别号,
          总线使它能区别其他八个设备(它们每个都是一个逻辑单元)。


比较一下上面的内容和scsi文件的内容,我们可以知道,添加第三个插槽的硬盘是这么操作的:
[root@aslibra.com ~]# echo "scsi add-single-device 0 0 2 0" > /proc/scsi/scsi
[root@aslibra.com ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1x6 SCSI BP      Rev: 1.0
  Type:   Processor                        ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: IBM-ESXS Model: MAP3147NC     FN Rev: C101
  Type:   Direct-Access                    ANSI SCSI revision: 03


ifdisk -l 也可以看到此硬盘了,说明已经可以使用了
把 0 0 2 0换成0 0 3 0可以如此类似的增加余下的scsi硬盘,操作完毕!
Tags: ,
nginx的location值里没有查询字符,所以在匹配地址时用不到查询字符
另外,rewrite时,默认会把查询字符带上的,加上问号即可解决。

假设要把 /question.php?qid=123 的地址跳转到 /question/123.html
location /question.php {
  rewrite ^ /question/$arg_qid.html redirect;
}


我们会发现地址变成 /question/123.html?qid=123
你要的参数都可以找到 $arg_qid ( $arg_变量名称 )
nginx里面,在后面加上问号就可以不带上查询字符了

location /question.php {
  rewrite ^ /question/$arg_qid.html? redirect;
}


对值有要求的,可以匹配 $args ,比如(复制别人的)

location / {
    if ($args ~* "/?param1=val1&param2=&param3=[0-9]+&param4=.+&param5=[0-9]+") {
        rewrite ^ http://www.example.com/newparam/$arg_param3/$arg_param4? last;
    }
}


Tags: , ,
分页: 1/31 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐