12月 16

Linux下首先需要安装xvfb

sudo apt-get install xvfb

安装phantomjs

apt-get install phantomjs

一般调用

/var/www/test# phantomjs rasterize.js http://www.baidu.com test.png

中文出现了乱码,是因为没有安装字体

sudo apt-get install xfonts-wqy

C#调用

            Process p = new Process();
            p.StartInfo.FileName = "phantomjs";
            p.StartInfo.Arguments = "rasterize.js http://www.baidu.com test.png";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;
            p.Start();  
            p.Close();

rasterize.js

var page = require('webpage').create(),
    system = require('system'),
    address, output, size;

if (system.args.length < 3 || system.args.length > 5) {
    console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
    console.log('  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
    console.log('  image (png/jpg output) examples: "1920px" entire page, window width 1920px');
    console.log('                                   "800px*600px" window, clipped to 800x600');
    phantom.exit(1);
} else {
    address = system.args[1];
    output = system.args[2];
    page.viewportSize = { width: 600, height: 600 };
    if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
        size = system.args[3].split('*');
        page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
                                           : { format: system.args[3], orientation: 'portrait', margin: '1cm' };
    } else if (system.args.length > 3 && system.args[3].substr(-2) === "px") {
        size = system.args[3].split('*');
        if (size.length === 2) {
            pageWidth = parseInt(size[0], 10);
            pageHeight = parseInt(size[1], 10);
            page.viewportSize = { width: pageWidth, height: pageHeight };
            page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight };
        } else {
            console.log("size:", system.args[3]);
            pageWidth = parseInt(system.args[3], 10);
            pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any
            console.log ("pageHeight:",pageHeight);
            page.viewportSize = { width: pageWidth, height: pageHeight };
        }
    }
    if (system.args.length > 4) {
        page.zoomFactor = system.args[4];
    }
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
            phantom.exit(1);
        } else {
            window.setTimeout(function () {
                page.render(output);
                phantom.exit();
            }, 200);
        }
    });
}

written by ocean \\ tags: ,

5月 08

服务器被入侵了,不得不重装

Linode重新安装Ubuntu

首先更新系统

sudo apt-get update
sudo apt-get upgrade

构建编译环境

sudo apt-get install build-essential
sudo apt-get install automake autoconf
sudo apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev

安装编译需要的相关库文件

sudo apt-get install libgif-dev libtiff5-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev

安装mono

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
apt-get install  mono-complete

此时输入命令可以 查看mono的存在

mono -V

下载并且安装Jexus

cd /tmp
wget www.linuxdot.net/down/jexus-5.6.4.tar.gz 
tar -zxvf jexus-5.6.4.tar.gz 
cd jexus-5.6.4 
sudo ./install

上传网站程序并且做相关配置

参见之前的文章 http://blog.wx6.org/2015/426.htm设置Jexus开机自启动

vi /etc/rc.local

添加下面的语句到最后并保存

/usr/jexus/jws  start

 

安装Mysql

sudo apt-get install mysql-server

安装完之后进去

发现远程Client无法连接到Mysql

提示错误

2003- can't connect to MySQL server on '222.333.444.555' (10038)

执行命令

vi /etc/mysql/my.cnf

注释掉bind-address ,加井号即可,如下

#bind-address

再次连接发现还是进不去,是需要授权远程IP,进去Mysql

mysql -h localhost -u root -p

执行授权即可

GRANT ALL PRIVILEGES ON *.* TO 'root'@'222.338.544.542' IDENTIFIED BY 'this is a password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.28.3.103' IDENTIFIED BY 'root' WITH GRANT OPTION;

 

 

安全方面

安装防火墙

sudo apt-get install ufw

查看防火墙状态

sudo ufw status

启用防火墙

sudo ufw enable

允许IP的全部端口访问

sudo ufw allow from 222.333.444.555

开放80端口出来

sudo ufw allow 80/tcp

禁止ip

sudo ufw deny from 222.161.53.19

 

编辑时间

dpkg-reconfigure tzdata

 

语言和系统编码

查看当前安装有哪些语言

locale -a

安装中文支持

sudo apt-get install language-pack-zh-hant language-pack-zh-hans

更新字体

dpkg-reconfigure locales

查看系统安装的中文字体

fc-list :lang=zh-cn

查看文件夹大小

du -sh

查看一级子文件夹的大小

du -h --max-depth=1    #max-depth控制层级

查看所有磁盘占用

df -h

 

压缩文件

zip -r /var/www/yhhz5/upload/201509.zip /var/www/yhhz5/upload/201509/*

在ubuntu里用C#调用Linux命令

            Process p = new Process();
            p.StartInfo.FileName = "sh";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;
            p.Start();
            p.StandardInput.WriteLine("ls -l");
            p.StandardInput.WriteLine("exit");
            string strResult = p.StandardOutput.ReadToEnd();
            TextBox1.Text = strResult;
            p.Close();

查看网络速度监控

apt-get install nload

查看网速

nload -m k

修改host

vi /etc/hosts

written by ocean \\ tags: , ,