Category: Life

  • sql查询结果保存与文件读取

    将查询结果保存到文件里, 注意 如果已经存在同名文件,则不会创建。

    SELECT…INTO OUTFILE

    例子:

    select name,ctfid,birthday,mobile,tel,email from info where ctfid like '130000%' into outfile '/tmp/fuping-of-rujia';

    同时可以指定分隔符等

    SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
    
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    
    LINES TERMINATED BY '\n'
    
    FROM test_table;

    从文件读取的语法为

    LOAD DATA INFILE

    同样可以指定分隔符等,例如从csv文件导入:

    load data local infile '1-200W.csv' into table `info` fields terminated by ',' lines terminated by '\n';
  • traceroute/mtr使用笔记

    traceroute是检测到目的主机路由的工具,它并不能保证从本机发出的两个IP数据报有相同的路由。

    原理是:traceroute发送udp数据报,先发送TTL为1的,到第一个路由器TTL减1,并返回一个超时的ICMP报文,这样就得到了第一个路由器的地址;接下来发送TTL值为2的报文,得到第二个路由器的报文;到目的主机的时候,并不会返回超时ICMP报文,而是udp发送到一个不可能到达的目的端口,这样就能返回一个“端口不可达”的错误。这样traceroute也就完成了任务。

    显示自治区域,如果显示[*]有可能是bgp

    traceroute -A g.cn

    指定网卡

    traceroute -i wlan0 g.cn

    只显示ip,不显示ip映射的值

    traceroute -n g.cn

    通过管道使用nali这个程序查询地址库显示ip地理位置

    traceroute -n g.cn | nali
  • email的html排版

    用程序生成好一个邮件标题和内容,之后想要完美的在收件箱里接收,需要编写针对于邮件的html。

    美观可以放在第二位,但是需要让邮箱认出是html来,否则内容会以原码显示。

    在邮件headers中加入正确的Content-type和charset即可。

    email html中的布局基本是用table,css样式尽量直接写在html标签里,以下分别是用原生php和php-mail(SMTP)来发邮件。

    <?php
    
    $message='
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>title</title>
    </head>
    <body>
    <table>
    <tr>
    <th>three days forcast</th>
    </tr>
    </table>
    </body>
    </html>';
    
    $to = '[email protected]';
    
    $subject =send mail using php;
    $from = "[email protected]";
    $headers = "From: $from\n";
    $headers .= "Reply-To: $from\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1";
    
    mail($to, $subject, $message,$headers);
    echo "Mail Sent.";
    
    ?>

    使用pear mail(SMTP)发送邮件

    <?php
    
    //require apt-get install php-mail, reference: http://php.net/manual/en/function.mail.php
    include("Mail.php");
    
    $message='
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>title</title>
    </head>
    <body>
    <table>
    <tr>
    <th>three days forcast</th>
    </tr>
    </table>
    </body>
    </html>';
    
    $to = '[email protected]';
    
    $subject =send mail using php;
    
    $headers["From"] = "[email protected]";
    $headers["TO"] = "[email protected]";
    $headers["Subject"] = "$subject";
    $headers["MIME-Version"] = "1.0";
    $headers["Content-type"] = "text/html";
    $headers["charset"] = "iso-8859-1";
    
    $params["host"] = "smtp.163.com";
    $params["port"] = "25";
    $params["auth"] = true;
    $params["username"] = "[email protected]";
    $params["password"] = "yourpassword";
    
    $mail_object = & Mail::factory("smtp", $params);
    
    $mail_object->send($to, $headers, $message);
    
    //echo $message;
    echo "Mail Sent.";
    
    ?>

    参考:http://johndoesdesign.com/blog/2012/php/getting-your-php-html-email-to-render-in-gmail/

    http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  • mysql将一张表移动到另外的库中

    现在有db1.table1表,现在要将它放到db2中,最简的方法是mysqldump导出,再导入。

    另一种方法是

    create table db2.table2 as select * from db1.table1;

    结构,数据内容一致,但是不会复制索引以及外键

    要保持完全一致,则两步操作,先复制表结构,再复制数据

    create table db2.table2 like db1.table1;
    insert into db2.table2 select * from db1.table1;
  • linux nice命令

    nice命令用于调整程序的优先级,在top命令中看到的第三列 NI 。

    系统的优先级范围为-20(最高)至19(最低),默认优先级为0,只有root用户才可以指定0以下的优先级。

    如将mysqld以-3优先级,则运行

    nice -n -3 /usr/sbin/mysqld &

    top检查

    PID  USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
    30128 mysql 17 -3 665m 42m 6740 S 0 0.5 0:00.09 mysqld

    真正的优先级是按PR+NI的值,这个值越小,越优先。

    如果-n后不加具体级别的话,默认是10,即以10 nice值运行。

    上面是开始执行命令的时候指定nice值,如果程序已经在运行,则使用renice来调整nice值。

    如上面mysqld运行的nice值是-3,进程号是30128,现在指定为-11

    # renice -11 -p 30128
    30128 (process ID) old priority -3, new priority -11

    在top中调整nice值很是方便,进入top后按”r”–>输入进程PID–>输入nice值,如

    PID to renice:30128(回车)
    Renice PID 30128 to value: -11(nice值)

     

  • vim打开光标下的文件

    当光标在某文件之上时,可以按如下操作直接打开该文件

    打开文件在当前窗口open in the same window (“goto file”)

    gf

    打开文件在新的窗口open in a new window (Ctrl-w f)

    <c-w>f

    打开文件在新的tab

    <c-w>gf open in a new tab (Ctrl-w gf)

    参考:

    http://vim.wikia.com/wiki/Open_file_under_cursor