【自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux的版本也发布一下,我本人喜欢安静,如果你想要这些迷你版本的Linux光盘的话,建议去官网下载就OK了。英语不行的话随时带个字典。有些没有桌面,想知道哪些没有桌面的话请自己网上查资料!下面就是绝大部分小于361M的Linux及其非Linux名单,参考时间为2011年12月份,最近的新版本可能有变!】

Linux没有最小只有更小----361M以下的Linux名单

Vecket:361M
webc:313M
ging:312m
GoblinX:311M
dfly:293M
MirBSD:290M
MidnightBSD:265M
pud:265M
Porteus:261M
caos:241M
crux:237M
grml-medium:224M
OpenBSD 5.0:224M
NetBSD:224M
SLAX:213M
MorphingMorphix:212M
bsdeviant:208M
frenzy:199M
CDlinux:194M
debris:190M
FRANKIE:187M
pmagic:185M
Macpup:168M
formilux:166M
RIPLinuX:157M
jOS:151M
gentoo:128M
clonezilla:127M
vyatta:124M
LPS(Lightweight Portable Security):123M
PuppyLinux:123M
unity:121M
feather:119M
gparted:116M
qrky linux:113M
FreeNAS:103M
browserlinux:96M
milax:95M
austrumi:95M
stresslinux:90M
xpud:65M
ttylinux:63M
turnkey:60
MXebian:52M
dsl(Damn Small Linux):51M
luitlinux:51M
bbc:48M
[奶瓶]beini:45M
AstLinux:40M
slitaz:30M
4MLinux:30M
geexbox:24m
FreeNOS:18M
TinyCore:12M
visopsys:11M
Micro Core Linux :8M
HelenOS:8m
bsd4me:5M
VitasV:4M
minopsos:1.4M
MenuetOS:0.6M
......

想学习Linux桌面系统的话使用Fedora或者Ubuntu或者Debain等等这些著名的发行版本,功能非常齐全,软件包安装非常方便。想学习Linux服务器搭建的话建议使用CentOS,Fedora等等服务器操作系统行业比较著名的版本。
想找个随身的Linux就去上面的小于361M的Linux名单里找找吧,喜欢桌面的也有很小的,比如visopsys才11M也是有桌面的,汇编语言写的系统MenuetOS(0.6M)的也是有桌面的。

慢慢玩吧,Linux世界总有你想要的。

转:http://blog.sina.com.cn/s/blog_99be711101011tu8.html

在KVM中安装CentOS,ppp拨号时报错,根据错误日志查看,发现pptp没有穿透,所以按照如下方法配置防火墙后,拨号成功。

---
Starting negotiation on /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xc93c30c6> <pcomp> <accomp> <mrru 1500> <endpoint [MAC:00:16:3e:d8:d7:39]>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xc93c30c6> <pcomp> <accomp> <mrru 1500>
...
LCP: timeout sending Config-Requests
Connection terminated.
---
经搜索,发现有人提到PPTP穿透需要在iptables中配置,就像一般的路由器一样。通过lsmod查询,发现确实没有pptp模块,于是就通过以下命令加载了一下该模块:
# modprobe ip_nat_pptp
加载之后,果然能够正常拨上VPN了。

为了能够让iptables在每次启动的时候都自动加载该模块,最好在/etc/sysconfig/iptables-config中加入该模块:
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_pptp"

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

pptpsetup --create pptp_hk --server xxx.xxx.xxx.xxx --username xxxxxxx --password xxxxxxx --encrypt

pppd call pptp_hk

包括 安装epel源、导入国内数据源、系统支持中文、调整时区等简单功能
适用于模板:centos-6-x86_64-minimal.tar.gz
wget "http://www.151051.com/soft/init/init_centos.sh" -O - | bash

nslookup是常用来查询本机域名解析情况的命令,但是一些linux系统下默认无此命令。我们可以通过安装一个包来使该命令生效,这个包中也包括dig命令。

Ubuntu:

# sudo apt-get install dnsutils

Debian:

# apt-get update
# apt-get install dnsutils

Fedora / Centos:

# yum install bind-utils

http://www.centoscn.com/CentosServer/test/2014/1120/4153.html

OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件。使用OpenVPN可以方便地在家庭、办公场所、住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道。

使用OpenVPN配合特定的代理服务器,可用于访问Youtube、FaceBook、Twitter等受限网站,也可用于突破公司的网络限制。

一、服务器端安装及配置

服务器环境:干净的CentOS6.3 64位系统

内网IP:10.143.80.116

外网IP:203.195.xxx.xxx

OpenVPN版本:OpenVPN 2.3.2 x86_64-redhat-linux-gnu

    1、安装前准备

# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度
yum -y install openssl openssl-devel
yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

    2、安装及配置OpenVPN和easy-rsa

# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Shandong"
export KEY_CITY="Qingdao"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# 初始化环境变量
source vars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key client1
./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key

查看keys目录下生成的文件:

centoscn.com/uploads/allimg/141120/01454S634-0.jpg" alt="wKioL1RhllmyOZW9AAKmWJ5x4tg383.jpg" />

    3、创建服务器端配置文件

# 在openvpn的配置目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/
# 查看server.conf里的配置参数
grep '^[^#;]' /etc/openvpn/server.conf
# 编辑server.conf
vim /etc/openvpn/server.conf
port 1194
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key  # This file should be kept secret
dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和实际的局域网冲突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是我这台VPN服务器所在的内网的网段,读者应该根据自身实际情况进行修改
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log 
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5

4、配置内核和防火墙,启动服务

# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sysctl -p
# 配置防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
service iptables save
# 启动openvpn并设置为开机启动
service openvpn start
chkconfig openvpn on

    5、创建客户端配置文件

# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote 203.195.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
ns-cert-type server
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3

二、Windows客户端安装及配置

客户端系统:Windows7 64位

内网IP:172.16.4.4

OpenVPN版本:OpenVPN 2.3.3 Windows 64位

    1、下载安装OpenVPN

OpenVPN 2.3.3 Windows 32位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-i686.exe

OpenVPN 2.3.3 Windows 64位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-x86_64.exe

    2、配置client

将OpenVPN服务器上的client.ovpn、ca.crt、client1.crt、client1.key、ta.key上传到Windows客户端安装目录下的config文件夹(C:\Program Files\OpenVPN\config)

    3、启动OpenVPN GUI

在电脑右下角的openvpn图标上右击,选择“Connect”。正常情况下应该能够连接成功,分配正常的IP。

centoscn.com/uploads/allimg/141120/0151164428-0.jpg" alt="wKiom1RhjGbijB7xAABMoQo3Tnc522.jpg" />

centoscn.com/uploads/allimg/141120/01454W631-2.jpg" alt="wKioL1RhjgyxiZ17AAIRIRCqqws094.jpg" width="650" />    

    4、测试

centoscn.com/uploads/allimg/141120/01454RS1-3.jpg" alt="wKiom1RhjfPD8_AYAAGxUvt_PCA503.jpg" width="650" />

ping通服务器的内网IP,说明已经接入到服务器的内部网络。

到OpenVPN服务器上查看客户端的连接情况,查看状态文件/etc/openvpn/openvpn-status.log:

转:http://blog.chinaunix.net/uid-14735472-id-4220089.html

云计算用一个朋友的话来说:”做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做

好准备。更苦逼的就是刚以为一个问题不会遇到,立刻就发生了。。。“。这个还真的没有办法,

谁让哥我是搞云计算的呢,简单一个虚拟化就搞的你蛋疼,你还能想其它的吗?一直纠结在做虚

拟化使用什么镜像格式,刚刚开始用了raw的file,后来发现LVM的很多特性对于虚拟化还是有比较

理想的能力,而且性能也很不错就用了LVM。后来被VMware骗了跑去搞Esxi接触了VMDK,最近

研究openstack发现了qcow2格式,貌似现在很流行呀。也说不上分析这些镜像格式的能力,就简单

说说自己的一些使用心得。

 

目前主要有那些格式来作为虚拟机的镜像:

raw


(default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that suppor

t sparse files, images in this format only use the space actually used by the data recorded in them.

老牌的格式了,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜

像。由于裸的彻底,性能上来说的话还是不错的。目前来看,KVM和XEN默认的格式好像还是这

个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。
裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果

其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多

少就是多少(du -h看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了

(copy镜像的时候),会比较消耗网络带宽和I/O。接下来还有个有趣的问题,如果那天你的硬盘

用着用着不够用了,你咋办,在买一块盘。但raw格式的就比较犀利了,可以在原来的盘上追加空间:
dd if=/dev/zero of=zeros.raw bs=1024k count=4096(先创建4G的空间)
cat foresight.img zeros.raw > new-foresight.img(追加到原有的镜像之后)

[ ] centos-5-x86-devel.tar.gz">centos-5-x86-devel.tar.gz 21-Oct-2014 22:12 197M
[TXT] centos-5-x86-devel.tar.gz.asc">centos-5-x86-devel.tar.gz.asc 21-Oct-2014 22:36 198
[ ] centos-5-x86.tar.gz">centos-5-x86.tar.gz 21-Oct-2014 22:11 174M
[TXT] centos-5-x86.tar.gz.asc">centos-5-x86.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-5-x86_64-devel.tar.gz">centos-5-x86_64-devel.tar.gz 21-Oct-2014 22:15 213M
[TXT] centos-5-x86_64-devel.tar.gz.asc">centos-5-x86_64-devel.tar.gz.asc 21-Oct-2014 22:36 198
[ ] centos-5-x86_64.tar.gz">centos-5-x86_64.tar.gz 21-Oct-2014 22:13 189M
[TXT] centos-5-x86_64.tar.gz.asc">centos-5-x86_64.tar.gz.asc 21-Oct-2014 22:36 198
[ ] centos-6-x86-devel.tar.gz">centos-6-x86-devel.tar.gz 21-Oct-2014 22:07 234M
[TXT] centos-6-x86-devel.tar.gz.asc">centos-6-x86-devel.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-6-x86-minimal.tar.gz">centos-6-x86-minimal.tar.gz 21-Oct-2014 22:06 103M
[TXT] centos-6-x86-minimal.tar.gz.asc">centos-6-x86-minimal.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-6-x86.tar.gz">centos-6-x86.tar.gz 21-Oct-2014 22:05 203M
[TXT] centos-6-x86.tar.gz.asc">centos-6-x86.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-6-x86_64-devel.tar.gz">centos-6-x86_64-devel.tar.gz 21-Oct-2014 22:10 249M
[TXT] centos-6-x86_64-devel.tar.gz.asc">centos-6-x86_64-devel.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-6-x86_64-minimal.tar.gz">centos-6-x86_64-minimal.tar.gz 21-Oct-2014 22:09 103M
[TXT] centos-6-x86_64-minimal.tar.gz.asc">centos-6-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-6-x86_64.tar.gz">centos-6-x86_64.tar.gz 21-Oct-2014 22:08 216M
[TXT] centos-6-x86_64.tar.gz.asc">centos-6-x86_64.tar.gz.asc 21-Oct-2014 22:37 198
[ ] centos-7-x86_64-minimal.tar.gz">centos-7-x86_64-minimal.tar.gz 21-Oct-2014 22:16 131M
[TXT] centos-7-x86_64-minimal.tar.gz.asc">centos-7-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:38 198
[ ] centos-7-x86_64.tar.gz">centos-7-x86_64.tar.gz 21-Oct-2014 22:16 201M
[TXT] centos-7-x86_64.tar.gz.asc">centos-7-x86_64.tar.gz.asc 21-Oct-2014 22:38 198
[DIR] contrib/ 18-Nov-2014 13:04 -
[ ] debian-6.0-x86-minimal.tar.gz 21-Oct-2014 22:03 77M
[TXT] debian-6.0-x86-minimal.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-6.0-x86.tar.gz 21-Oct-2014 22:02 148M
[TXT] debian-6.0-x86.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-6.0-x86_64-minimal.tar.gz 21-Oct-2014 22:04 79M
[TXT] debian-6.0-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-6.0-x86_64.tar.gz 21-Oct-2014 22:04 150M
[TXT] debian-6.0-x86_64.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-7.0-x86-minimal.tar.gz 21-Oct-2014 22:00 84M
[TXT] debian-7.0-x86-minimal.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-7.0-x86.tar.gz 21-Oct-2014 21:59 224M
[TXT] debian-7.0-x86.tar.gz.asc 21-Oct-2014 22:39 198
[ ] debian-7.0-x86_64-minimal.tar.gz 21-Oct-2014 22:01 84M
[TXT] debian-7.0-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:38 198
[ ] debian-7.0-x86_64.tar.gz 21-Oct-2014 22:01 224M
[TXT] debian-7.0-x86_64.tar.gz.asc 21-Oct-2014 22:38 198
[ ] fedora-19-x86.tar.gz 21-Oct-2014 21:50 190M
[TXT] fedora-19-x86.tar.gz.asc 21-Oct-2014 22:39 198
[ ] fedora-19-x86_64.tar.gz 21-Oct-2014 21:52 190M
[TXT] fedora-19-x86_64.tar.gz.asc 21-Oct-2014 22:39 198
[ ] fedora-20-x86.tar.gz 21-Oct-2014 21:48 184M
[TXT] fedora-20-x86.tar.gz.asc 21-Oct-2014 22:39 198
[ ] fedora-20-x86_64.tar.gz 21-Oct-2014 21:49 185M
[TXT] fedora-20-x86_64.tar.gz.asc 21-Oct-2014 22:39 198
[ ] scientific-6-x86.tar.gz 21-Oct-2014 22:18 197M
[TXT] scientific-6-x86.tar.gz.asc 21-Oct-2014 22:40 198
[ ] scientific-6-x86_64.tar.gz 21-Oct-2014 22:19 210M
[TXT] scientific-6-x86_64.tar.gz.asc 21-Oct-2014 22:39 198
[ ] suse-12.3-x86.tar.gz 21-Oct-2014 21:42 190M
[TXT] suse-12.3-x86.tar.gz.asc 21-Oct-2014 22:40 198
[ ] suse-12.3-x86_64.tar.gz 21-Oct-2014 21:43 191M
[TXT] suse-12.3-x86_64.tar.gz.asc 21-Oct-2014 22:40 198
[ ] suse-13.1-x86-minimal.tar.gz 21-Oct-2014 21:45 55M
[TXT] suse-13.1-x86-minimal.tar.gz.asc 21-Oct-2014 22:40 198
[ ] suse-13.1-x86.tar.gz 21-Oct-2014 21:45 229M
[TXT] suse-13.1-x86.tar.gz.asc 21-Oct-2014 22:40 198
[ ] suse-13.1-x86_64-minimal.tar.gz 21-Oct-2014 21:47 56M
[TXT] suse-13.1-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:40 198
[ ] suse-13.1-x86_64.tar.gz 21-Oct-2014 21:47 232M
[TXT] suse-13.1-x86_64.tar.gz.asc 21-Oct-2014 22:40 198
[ ] ubuntu-10.04-x86.tar.gz 21-Oct-2014 21:57 133M
[TXT] ubuntu-10.04-x86.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-10.04-x86_64.tar.gz 21-Oct-2014 21:58 137M
[TXT] ubuntu-10.04-x86_64.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-12.04-x86-minimal.tar.gz 21-Oct-2014 21:55 57M
[TXT] ubuntu-12.04-x86-minimal.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-12.04-x86.tar.gz 21-Oct-2014 21:55 123M
[TXT] ubuntu-12.04-x86.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-12.04-x86_64-minimal.tar.gz 21-Oct-2014 21:56 58M
[TXT] ubuntu-12.04-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-12.04-x86_64.tar.gz 21-Oct-2014 21:56 125M
[TXT] ubuntu-12.04-x86_64.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-14.04-x86-minimal.tar.gz 21-Oct-2014 21:53 73M
[TXT] ubuntu-14.04-x86-minimal.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-14.04-x86.tar.gz 21-Oct-2014 21:52 145M
[TXT] ubuntu-14.04-x86.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-14.04-x86_64-minimal.tar.gz 21-Oct-2014 21:54 75M
[TXT] ubuntu-14.04-x86_64-minimal.tar.gz.asc 21-Oct-2014 22:41 198
[ ] ubuntu-14.04-x86_64.tar.gz 21-Oct-2014 21:54 147M
[TXT] ubuntu-14.04-x86_64.tar.gz.asc 21-Oct-2014 22:41 198

http://download.openvz.org/template/precreated/

工具:add_swap.sh
所有执行的脚本都需要root身份来执行,执行方法:以root身执行命令:bash xxx.sh

功能:自动检测系统swap分区大小,交换分区大小不合理则自动新增并挂载上
适用系统版本:兼容线上所有linux版本
执行方法:以root身执行命令:bash add_swap.sh
解决了什么问题:一键式检测系统swap分区大小,如果低于物理内存的2倍则自动创建一个物理内存2倍大小的swap分区
备注:swap不是越大越好,由于磁盘速度相对于内存较为低下,所以大swap反而会造成业务响应更慢,通常为2至2.5倍就好,如果有特殊需求可以更大。
内存为32G以上则不考虑
内存在16G至32G之间,交换分区配置为8G
内存在4G至16G之间,交换分区配置为4G
内存小于4G的则配置交换分区为2G

 

#!/bin/bash
#########################################
#Function:    add a new swap partition
#Usage:       bash add_swap.sh
#Author:      Customer service department
#Company:     Alibaba Cloud Computing
#Version:     2.1
#########################################

check_os_release()
{
  while true
  do
    if cat /proc/version | grep redhat >/dev/null 2>&1
    then
      os_release=redhat
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep centos >/dev/null 2>&1
    then
      os_release=centos
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep ubuntu >/dev/null 2>&1
    then
      os_release=ubuntu
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep -i debian >/dev/null 2>&1
    then
      os_release=debian
      echo "$os_release"
      break
    fi
    break
    done
}

check_memory_and_swap()
{
  mem_count=$(free -m|grep Mem|awk '{print $2}')
  swap_count=$(free -m|grep Swap|awk '{print $2}')
  if [ "$mem_count" -ge 15000 ]  && [ "$mem_count" -le 32768 ]
  then
    if [ "$swap_count" -ge 8000 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 8192
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 8192
    fi
  elif [ "$mem_count" -ge 3900 ] && [ "$mem_count" -lt 15000 ]
  then
    if [ "$swap_count" -ge 3900 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 4096
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 4096
    fi
  else
    if [ "$swap_count" -ge 2000 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 2048
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 2048
    fi
  fi
}

create_swap()
{
  root_disk_size=$(df -m|grep -w "/"|awk '{print $4}')
  if [ "$1" -gt "$((root_disk_size-1024))" ]
  then
    echo -e "\033[1;40;31mThe root disk partition has no space for $1M swap file.Script will exit.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
  if [ ! -e $swapfile ]
  then
    dd if=/dev/zero of=$swapfile bs=1M count=$1
    /sbin/mkswap $swapfile
    /sbin/swapon $swapfile
    /sbin/swapon -s
    echo -e "\033[40;32mStep 3.Add swap partition successful.\n\033[40;37m"
  else
    echo -e "\033[1;40;31mThe /var/swap_file already exists.Will exit.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

remove_old_swap()
{
  old_swap_file=$(grep swap $fstab|grep -v "#"|awk '{print $1}')
  swapoff $old_swap_file
  cp -f $fstab ${fstab}_bak
  sed -i '/swap/d' $fstab
}

config_rhel_fstab()
{
  if ! grep $swapfile $fstab >/dev/null 2>&1
  then
    echo -e "\033[40;32mBegin to modify $fstab.\n\033[40;37m"
    echo "$swapfile	 swap	 swap defaults 0 0" >>$fstab
  else
    echo -e "\033[1;40;31m/etc/fstab is already configured.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

config_debian_fstab()
{
  if ! grep $swapfile $fstab >/dev/null 2>&1
  then
    echo -e "\033[40;32mBegin to modify $fstab.\n\033[40;37m"
    echo "$swapfile	 none	 swap sw 0 0" >>$fstab
  else
    echo -e "\033[1;40;31m/etc/fstab is already configured.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

##########start######################
#check lock file ,one time only let the script run one time 
LOCKfile=/tmp/.$(basename $0)
if [ -f "$LOCKfile" ]
then
  echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\n\033[0m"
  exit
else
  echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\n\033[40;37m"
  touch $LOCKfile
fi

#check user
if [ $(id -u) != "0" ]
then
  echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\n\033[0m"
  rm -rf $LOCKfile
  exit 1
fi

os_release=$(check_os_release)
if [ "X$os_release" == "X" ]
then
  echo -e "\033[1;40;31mThe OS does not identify,So this script is not executede.\n\033[0m"
  rm -rf $LOCKfile
  exit 0
else
  echo -e "\033[40;32mStep 2.Check this OS type.\n\033[40;37m"
  echo -e "\033[40;32mThis OS is $os_release.\n\033[40;37m"
fi

swapfile=/var/swap_file
fstab=/etc/fstab

echo -e "\033[40;32mStep 3.Check the memory and swap.\n\033[40;37m"
check_memory_and_swap

echo -e "\033[40;32mStep 4.Begin to modify $fstab.\n\033[40;37m"
case "$os_release" in
redhat|centos)
  config_rhel_fstab
  ;;
ubuntu|debian)
  config_debian_fstab
  ;;
esac

free -m
echo -e "\033[40;32mAll the operations were completed.\n\033[40;37m"
rm -rf $LOCKfile

下载建立SWAP分区脚本

转:http://my.oschina.net/feedao/blog/223497

当我们把CentOS 6.5安装好以后,可以使用这个脚本来使用国内的阿里云镜像源

?
1
2
3
4
5
6
7
#!/bin/bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

 

 

有了国内的源地址,后面安装东西就方便了。

搜索docker,可以看到docker-io.x86_64和docker-registry.noarch,安装docker就简单了。

[root@localhost ~]# yum search docker
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
======================================================== N/S Matched: docker =========================================================
python-docker-py.x86_64 : An API client for docker written in Python
docker-io.x86_64 : Automates deployment of containerized applications
docker-registry.noarch : Registry server for Docker
fedora-dockerfiles.noarch : Example dockerfiles to assist standing up containers quickly
imagefactory-plugins-Docker.noarch : Cloud plugin for Docker
docker.x86_64 : KDE and GNOME2 system tray replacement docking application

转:http://zhaohe162.blog.163.com/blog/static/38216797201402234212981/

本文演示在Linux上安装NodeJS及Express开发框架
 
软件环境:
VMware 9
CentOS 6.5
NodeJS v0.10.24

 
安装过程:

Step 1、确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装。

[root@BobServerStation local]# yum -y install gcc gcc-c++ openssl-devel

Step 2、下载NodeJS源码包并解压。

[root@BobServerStation local]# wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz

[root@BobServerStation local]# tar zxvf node-v0.10.24.tar.gz
[root@BobServerStation local]# cd node-v0.10.24