OpenSSL建立自己的CA

一、准备工作如下:
1、在当前所在的目录下建立一个目录 mkdir demoCA
2、进入这个目录:cd demoCA/
3、建立空文件 index.txt 用来保存以后的证书信息,这是OpenSSL的证书数据库:touch index.txt
4、建立一个文件 serial 在文件中输入一个数字,做为以后颁发证书的序列号,以后颁发的证书序列号就从你输入的数字开始:

echo 100001 > serial

二、建立我们的CA根证书。
1、首先建立一个CA的根私钥文件,使用RSA格式,2048位:

openssl genrsa -des3 -out ca.key 2048

2、为CA自己建立一个自签名的证书文件:

openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..confopenssl.cnf

三、颁发客户的证书:
1、首先生成客户证书的私钥文件,与生成CA根证书文件的方法一样,这里我生成不需要密码保护的私钥:

openssl genrsa -des3 -out client.key 2048

2、生成证书请求文件csr:

openssl req -new -key client.key -out client.csr -config ..confopenssl.cnf

PEM生成:

openssl req -new -out client.csr -config ..confopenssl.cnf
openssl rsa -in privkey.pem -out client.key

3、有了证书请求文件之后,就可以使用CA的根证书、根私钥来对请求文件进行签名,生成客户端证书 client.pem 了:

openssl x509 -req -in client.csr -out client.crt -signkey privkey.pem -CA ca.crt -CAkey ca.key -days 365 -CAserial serial

到这里为止,根CA为客户端签发证书的过程就结束了。

四、撤销已签发的证书:
1、吊销已签发的证书可以使用ca中的 -revoke 命令:

openssl ca -revoke client.pem -keyfile ca.key -cert ca.crt

这里可能会有一个问题,因为默认的情况下index.txt文件应该放在demoCA文件夹下面,因此需要在这里建立一个demoCA文件夹并建立一个index.txt文件,就可以了

2、证书被吊销之后,还需要发布新的CRL文件:

openssl ca -gencrl -out ca.crl -keyfile ca.key -cert ca.crt

Sourceforge files upload

SCP
User jsmith seeks to put file.zip to the Rel_1 directory of his project, fooproject:

scp file.zip jsmith,fooproject@frs.sourceforge.net:/home/frs/project/f/fo/fooproject/Rel_1

Rsync
User jsmith seeks to put file.zip to the Rel_1 directory of his project, fooproject:

rsync -e ssh file.zip jsmith,fooproject@frs.sourceforge.net:/home/frs/project/f/fo/fooproject/Rel_1/

SFTP
User jsmith seeks to put file.zip to the Rel_1 directory of his project, fooproject:

$ sftp jsmith,fooproject@frs.sourceforge.net
Connecting to frs.sourceforge.net…
jsmith,fooproject@frs.sourceforge.net’s password:
sftp> cd /home/frs/project/f/fo/fooproject/Rel_1
sftp> put file.zip
Uploading file.zip to /home/frs/project/f/fo/fooproject/Rel_1/file.zip
ws 100% 1573 1.5KB/s 00:00
sftp>

SSH

cd /home/frs/project/f/fo/fooproject

Linux上vi(vim)编辑器使用教程

vi有3个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename       //打开filename文件
:w       //保存文件
:w vpser.net //保存至vpser.net文件
:q          //退出编辑器,如果文件已修改请使用下面的命令
:q!        //退出编辑器,且不保存
:wq         //退出编辑器,且保存文件

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a      //在当前光标位置的右边添加文本
i       //在当前光标位置的左边添加文本
A     //在当前行的末尾位置添加文本
I      //在当前行的开始处添加文本(非空字符的行首)
O     //在当前行的上面新建一行
o     //在当前行的下面新建一行
R    //替换(覆盖)当前光标位置及后面的若干文本
J    //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h   向左、j   向下 、k   向上、l  向右。
空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。

四、删除、恢复字符或行(vi命令模式下使用)

x         //删除当前字符
nx         //删除从光标开始的n个字符
dd      //删除当前行
ndd   //向下删除当前行在内的n行
u       //撤销上一步操作
U      //撤销对当前行的所有操作

五、搜索(vi命令模式下使用)

/vpser     //向光标下搜索vpser字符串
?vpser     //向光标上搜索vpser字符串
n           //向下搜索前一个搜素动作
N         //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行
n-         //向上跳n行
nG        //跳到行号为n的行
G           //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set  nu     //显示行号
:set nonu    //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw    //复制从光标开始到词尾的字符。
nyw   //复制从光标开始的n个单词。
y^      //复制从光标到行首的内容。  VPS侦探
y$      //复制从光标到行尾的内容。
p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

九、替换(vi命令模式下使用)

:s/old/new      //用new替换行中首次出现的old
:s/old/new/g         //用new替换行中所有的old
:n,m s/old/new/g     //用new替换从n到m行里所有的old
:%s/old/new/g      //用new替换当前文件里所有的old

十、编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。
原文:VPS侦探 http://www.vpser.net/manage/vi.html

Linux VPS上自动备份文件并发送到Gmail

一,安装所需程序

yum install -y mutt vixie-cron

二,设置mutt发信参数

$ vim ~/.muttrc

写入下面的内容

set envelope_from=yes
set from=bak@diavps.com
set realname="DiaBak"
set use_from=yes

然后设置要接收邮件的Gmail,把bak@diavps.com加入白名单。

三,设置脚本
注意这几个目录
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
这些目录下的文件可以分别每小时,每天,每周,每月自动执行一次。
如果是把脚本程序放置在上面的目录里,最好把权限设置为0700。
设置更复杂的执行条件可以使用crontab -e命令。详情请百度。

以每天执行为例

$ vim /etc/cron.daily/diabsk.sh

写入下面的内容

#!/bin/bash

# SETTING
TOEMAIL="bak@diavps.com";
COMMENT=’blog database backup’
DIR=’wordpress’
# END SETTING

TMP=’/tmp/diabak/’${DIR}
ATTTMP=’/tmp/diabakatt/’${DIR}

rm -rf $TMP
mkdir -p $TMP
cd $TMP

# Put files what you want to backup to $TMP

# Don’t change anything below
YYYYMMDD=`date +%Y%m%d`
SUBJECT=’DiaBak_of_’${DIR}’_’${YYYYMMDD};

rm -rf $ATTTMP
mkdir -p $ATTTMP
cd $ATTTMP

tar zcPf backup.tar.gz $TMP
rm -rf $TMP
split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part
rm -f backup.tar.gz

for file in *
do
echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL
sleep 30s
done

rm -rf $ATTTMP

需要更改的内容已经加红
TOEMAIL为接收邮件的邮箱地址。
TOEMAIL为注释邮件,以邮件正文发送。
DIR为临时目录名,建议仅使用英文和数字。
# Put files what you want to backup to $TMP,这一行下面的命令根据需要自己补充,比如备份数据库可以把SQL文件导出到$TMP目录,备份文件可以复制文件到$TMP目录。

四,导出数据库的命令。
1.备份单个数据库

mysqldump –user=user –password=password –lock-all-tables dbname > backup.sql

2.备份多个数据库

mysqldump –user=user –password=password –lock-all-tables –databases dbname1 dbname2 > backup.sql

3.备份所有数据库

mysqldump –user=user –password=password –lock-all-tables –all-databases > backup.sql

–lock-all-tables选项可以在备份期间锁定数据库防止出现变化,进而导致多个有关系的表不同步,比如A表需要引用B表,备份完A表后,B 表发生了变化,之后才备份了B表,这样数据库就乱了。
备份上百M的数据库也只用了几秒而已,所以这个选项对网站运行影响不大。

五,重新组合备份的文件
Linux下

$ cat DiaBak* > bak.tar.gz

windows下

copy DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b bak.tar.gz

注意分卷后面会有三位数字,cat命令会按这些数字的顺序重新组合文件,所以数字不能乱。
copy命令同理,注意数字顺序。

六,其他
测试了一个600多M的文件,以20M的大小分成了31个包,通过脚本发送,用时十几分钟,期间网速保持在5Mbps到10Mbps之间,本机还有足够的 带宽,这个应该是GMAIL的上限了。
有些邮件需要过一个多小时才在Gmail显示出来。31个包全部收到。
如果哪位发现有比Gmail更适合备份的邮箱,期待与大家分享。

转载自:http://www.hostloc.com/thread-15597-1-1.html