博采众长,精于一技。Live for love, work for dream.

精简debian linux VPS系统

1.首先,进行系统升级:
apt-get update && apt-get upgrade
2.完全多余的软件
apt-get -y purge apache2-* bind9-* xinetd samba-* nscd-* portmap sendmail-* sasl2-bin
3.多余的系统组件
apt-get -y purge lynx memtester unixodbc python-* odbcinst-* sudo tcpdump ttf-*
4.清理系统
apt-get autoremove && apt-get clean

这样就完成了,free -m 看看内存占用怎么样吧。

多余软件说明:

  • apache2-* //apache服务器,我们一般自己重装或者换Nginx等等
  • bind9-* //dns服务器,我们一般不在自己VPS上搭建DNS服务器,果断卸掉
  • xinetd //xinetd是服务守护进程,比如平时ftp服务器未开启,发现有人访问21端口则自动启动ftp服务器。VPS不需要
  • samba-* //samba能让linux系统使用windows的共享功能,VPS显然不需要
  • nscd-* //DNS缓存软件,同bind9,不需要
  • portmap //端口转发,一般Web服务器不需要
  • sendmail-* //发送邮件用,一般程序都使用php-sendmail,不需要这个
  • sasl2-bin //一个权限程序,不光占用资源,还容易在建立系统账户时候出错,果断删掉

多余的系统组件(不会自启动,但是占用硬盘,也许还会造成冲突什么的):
  • lynx //文本浏览器,一般人系用不到滴~~
  • memtester //测试内存有没有坏,我没那么无聊……
  • unixodbc odbcinst-* //odbc数据库,主要给windows用,做网站一般用不到
  • python-* //大名鼎鼎的Python语言,如果正常玩linux很可能用到,但是Web服务器是用不到的
  • sudo //让授权过的普通用户获得root权限,VPS不需要
  • tcpdump //TCP抓包,你用么?
  • ttf-* //桌面环境用的字体,我们只要命令行……

用Duplicity备份你的VPS

一直想对VPS进行一次备份,苦于没有找到比较好的办法,所以一直搁置。这次,经过一番周折,终于找到了VPS备份利器--Duplicity
Duplicity是一个使用Python语言实现的文件增量备份工具,其利用rsync底层类库,实现仅把文件中变化了的数据存入增量备份包的工作方式(类似给文件生成Patch补丁的方式),调用pgp对数据包进行签名和加密,而且支持本地文件系统、远端ftp、ssh/scp、rsync、WebDAV、WebDAVs、HSi以及Amazon S3等非常丰富的备份存储介质。
安装很简单
apt-get install duplicity

这里放出我自己写的两个VPS备份脚本。
1.备份MySQL数据库(同时导出多个数据库到一个目录并进行压缩,最后删除7天前的备份,以节省空间)
backup_mysql.php
#! /usr/bin/php -q
<?php
ini_set
('memory_limit''-1');

$db_user 'root';
$db_pass 'your_password';
$backup_dbs = array('test','db1','db2');
$backup_dir '/home/rebill/VPS/backup';
$mysqldump_shell '/usr/local/mysql/bin/mysqldump';

function 
diffTime() {
  global 
$startingTime;
  return 
time() - $startingTime " secs.";
}


$mysqlDumpTab = array($mysqldump_shell,
              
"--add-drop-table",
              
"--add-drop-database",
              
"--complete-insert",
              
"--create-options",
              
"--comments",
              
"--opt",
              
"--quote-names",
              
"--skip-extended-insert",
              
"-u $db_user",
              
"--password='$db_pass'"
              
);
echo 
"MySQL Backup. backing up database\n";    
foreach(
$backup_dbs as $db){
    
$mysqlDump implode(' '$mysqlDumpTab);
    
$mysqlDump .= " --databases $db";
    
    
$sql_file $backup_dir"/" $db "_" date('Y-m-d'). ".sql";
    
// Dump a whole database
    
$startingTime time();
    echo 
"[mysqldump] dumping database $db.sql\n";
    
$mysqlDumpCommand $mysqlDump " > " $sql_file;
    
system($mysqlDumpCommand$retValue);
    if (
$retValue != 0) { echo "$db mysqldump Error!\n"; exit(-1); }
    echo 
"[mysqldump] export over in "diffTime(), "\n";
    
    
// Compress it
    
$startingTime time();
    
$gzipCmd "gzip -9 " $sql_file;
    echo 
"[gzip] $gzipCmd\n";
    
system($gzipCmd$retValue);
    if (
$retValue != 0) { echo "$sql_file Compress Error!\n"; exit(-1); }
    echo 
"[gzip] compression done in "diffTime(), "\n";
}

// Delete old files (7 days ago)
echo "Delete old files...\n";
$delCmd "find $backup_dir -type f -mtime +7 | xargs rm -f";
system($delCmd$retValue);
if (
$retValue != 0) { echo "Delete Error!\n"; exit(-1); }
echo 
"Done!\n";

return 
0;

2.duplicity备份VPS数据(如果你不喜欢Web数据和MySQL数据分开备份,你可以使用--include命令同时备份多个目录)
duplicity_backup.sh
#!/bin/bash
#
# Set GnuPG passphrase
#
export PASSPHRASE=rebill.info

#
# Backup Config
#
REMOTE_SERVER="192.168.0.2"
REMOTE_USER="root"
REMOTE_PASS="your_password"
REMOTE_WEB_DIR="/root/vps_backup/web"
REMOTE_DB_DIR="/root/vps_backup/db"
LOCAL_WEB_DIR="/home/wwwroot/"
LOCAL_DB_DIR="/home/db_backup/"

#
# Backup Web Data
#
duplicity $LOCAL_WEB_DIR scp://$REMOTE_USER:$REMOTE_PASS@$REMOTE_SERVER/$REMOTE_WEB_DIR

#
# Backup DB Data
#
duplicity $LOCAL_DB_DIR scp://$REMOTE_USER:$REMOTE_PASS@$REMOTE_SERVER/$REMOTE_DB_DIR

PS.具体参数请根据自己情况自行更改。

duplicity的更多用法请参考duplicity的手册:http://duplicity.nongnu.org/duplicity.1.html

VPS的简单安全措施三步曲

一、开防火墙
开防火墙,不用的端口都禁止掉
/etc/init.d/iptables start //简单的规则如下所示,具体的大家根据情况自己变通

/sbin/iptables -F
/sbin/iptables -A INPUT -p tcp -i vnet0 –dport ssh -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i vnet0 –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i vnet0 -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p ICMP -j DROP
/sbin/iptables -A INPUT -i vnet0 -j DROP

最简单几条iptables,修改好之后重启iptables。

/etc/init.d/iptables restart

二、改ssh端口
注意防火墙要开这个端口,别悲剧的也给禁止了,原则上改为5000以上端口为宜。

vi /etc/ssh/sshd_config //搜索 Port 把后面的数字改为你想要的端口号,Port前面如有#号,删除掉。

三、禁止root登录
注意要先创建普通用户,不然也会悲剧的

vi /etc/ssh/sshd_config //搜索PermitRootLogin把后面的yes改为no,前面如有#号,删除掉。

第二,三步完成之后重启ssh

service sshd restart

Linode VPS超级优惠,赠送$100,000 前1000名新客户每人100美元

Linode将于美国东部时间2010.12.17上午9点起前1000名新客户送出10万美元回馈大礼,每个新客户可获得100美元帐号余额(余额不能转赠或退款,只能作为VPS费用!)。via

注意北京时间2010.12.17 22:00开始,前1000名新客户!

时间到了就赶快点击这里去购买吧。

注:Linode只能使用信用卡购买。

BudgetVM:$0.5 256MB Xen VPS

BudgetVMenzu旗下的业务。最近推出了难以置信的超低价 Xen VPS。使用优惠码 95november 可以以95%OFF(0.5折)的价格购买。
VPS 配置如下:

256 MB RAM
20 GB 硬盘
250 GB 流量
一个IP
$9.95每月(原价) - $0.5每月(折后)

512 MB RAM
50 GB 硬盘
500 GB 流量
两个IP
$24.95每月(原价) - $1.25每月(折后)

1024 MB RAM
100 GB 硬盘
1000 GB 流量
两个IP
$45.95每月(原价) - $2.30每月(折后)

服务器硬件配置信息:

Intel(R) Xeon(R) CPU X3450 @ 2.67GHz, RAID10

另外有四机房可选:
Asheville, NC
Dallas, TX
Los Angeles, CA
Chicago, IL

VPS 选购地址: http://www.budgetvm.com/vpshosting.php

我忍不住买了台1024的VPS,在上面搭建了LNMP,放了个站点- ApkHub.com,同时装了个Wordpress - Android Developers Blog.
有兴趣购买的童鞋可以看看我放上去的探针

返回顶部