东东东 陈煜东的博客

月份存档: 十二月 2013

QQ邮箱无限容量

今天登录QQ邮箱,对QQ邮箱容量进行了一次免费升级。本以为容量会翻一番的,结果直接显示无限容量了。给了一个提示

您于2013年12月30日成为QQ邮箱第34654位升级至无限容量的用户!

邮箱容量从之前的1048576G变成无限。QQ邮箱可以每3个月手工扩容一次,或者你的邮箱容量使用了50%,3个月后容量会自动升级一倍。以前往邮箱里面拼命的发送附件,发送了40G就没有再发了,因为会频繁的出现说邮箱被攻击,屏蔽接收邮件。

这么大的邮箱可以干么用呢?

  • 当网盘用,但每个文件有50M的上限
  • 备份文件,但微云有10T的容量,够用
  • 备份服务器代码,定时给这个邮箱发送代码
  • 呃。。想不出来了

分类: 网络

python导出变量 等价php的var_dump或print_r函数

在编写PHP代码的时候,想查看这个变量的成员变量等信息,可以使用下面的方法

//php 代码
var_dump($variable);
//或者
print_r($variable);
//或者
var_export($variable,true);//true说明这个函数有返回值,返回字符串

最近学习Python,在编写Python的时候,自然也想查看变量的信息。可以使用一下方法

#python代码
print vars(variable)
#或者
variable.__dict__

vars其实就是调用对象的__dict__成员变量。因为如果没有这个成员变量,去调用,会出现TypeError: vars() argument must have dict attribute这样的错误。

这样就可以查看变量的信息了。

分类: Programming

PuTTY设置SSH端口代理转发

PuTTY是我用过的第一个SSH客户端,也是因为它,我接触了SSH,后来到公司工作后,发现大家都在使用SecureCRT,于是PuTTY就是用的比较少了。但是PuTTY还是在许多场合用到的。比如给git的图形客户端tortoisegit设置网络代理的时候会用上。

要使用SSH端口转发,首先下载一个putty,如果是公司内网,是无法直接连接外网的,需要有个代理服务器才能访问外网。如果不需要代理服务器就可以直接上网,可以使用myentunnel进行访问。

下载putty,http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

设置PuTTY

如图设置hostport,然后命名一个session保存起来,将来就不用再输入这些了。

设置本地转发端口

在与SSH服务器连接的同时,在本地开启一个7070端口,这样可以把网络请求转发到这个端口上,这个端口又与SSH服务器的22端口连接。

设置网络代理

如果你无法直接连接你的SSH服务器,那么你需要设置一下网络代理。如果你可以直接连接,那么忽略这步。在公司,必须通过代理才能访问外网,所以非常需要这步。

好了,通过以上设置,就可以连接SSH服务器了。连接成功后,利用本地开启的7070端口,就可以进行sock5进行SSH代理访问了。

推荐:给Goolge Chrome安装Proxy SwitchySharp插件。这个可以快速切换浏览器的代理模式,又兼有firefox的autoproxy功能。

分类: 网络

使用bash shell脚本编写简易的看门狗watch dog

发现有个定时上报的脚本,突然挂了,导致数据收集不到。查看了下,居然是数据库获得锁失败了。

单个脚本那边运行,肯定有风险存在,不知道之前的人怎么都没有注意到这个问题。为了解决这个问题,中午编写了一个看门狗的shell脚本,让其每隔固定的时间检查一下进程,如果没有发现进程就拉起来。否则就休眠一段时间。

看门狗shell脚本的编写

#!/bin/bash
now=`date '+%Y-%m-%d %H:%M:%S'`

grepFlag='grepDataReport'
thisLog='/data/report/watchlog'

baseDir="/data/report"
sleepTime=60

if [ ! -f "$baseDir/run.sh" ]; then
    echo "$baseDir/run.sh missing, check again" > "$thisLog"
    exit
fi

#user=`whoami`
user="root"
if [ "$user" != "root" ]; then
    echo "this tool must run as *root*"
    exit
fi

while [ 0 -lt 1 ]
do
    now=`date '+%Y-%m-%d %H:%M:%S'`
    ret=`ps aux | grep "$grepFlag" | grep -v grep | wc -l`
    if [ $ret -eq 0 ]; then
        cd $baseDir
        echo "$now process not exists ,restart process now... " > "$thisLog"
        ./run.sh
        echo "$now restart done ..... "  > "$thisLog"
        cd $curDir
    else
        echo "$now process exists , sleep $sleepTime seconds " > "$thisLog"
    fi
    sleep $sleepTime
done

在写这个脚本的时候,遇到了一些问题,主要是很久没有编写shell脚本了,有些忘记了。

在声明变量的时候 grepFlag = 'DataReport',提醒说命令不存在,原来是多了空格,生命变量必须紧邻=号才行。

多次启动一个程序。之前是因为变量没取到,获取不到进程。在if [ $ret -eq 0 ]里发现0,一直拉起进程,后来变换一下if分支的内容。使用判断如果进程查不到,就启动,如果启动多个,没有做处理。

在使用输出重定向的时候,我从 >> 改用为 > 。因为我觉得每次echo出来的文字都追加到一个文件里去,时间一长,这个文件会很大。于是我就直接改成覆盖,看最后一个消息是什么即可判断,还有查看文件的时间戳判断一下进程的情况。

后台运行程序run.sh的编写

后台的程序

nohup /usr/local/php/bin/php run.php grepDataReport &

注意这里一定要使用nohup。之前没有使用nohup,当终端没有关闭的时候,我kill了这个程序,会自动拉起,但是我退出终端,重新打开一个终端去kill后,发现无法拉起进程了。

注意使用nohup启动的时候,可能需要按一下按键,

nohup与&的区别

nohup是让命令忽略SIGHUP命令而已,退出终端后可以继续运行;&则让命令在后台运行,至于该命令是否能在退出终端后继续执行则要看进程是否是守护进程,如果不是,则需要nohup来帮忙。

nohup命令及其输出文件nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( nohang up)。

该命令的一般形式为:nohup command &使用nohup命令提交作业如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:nohup command > myout.file 2>&1 &在上面的例子中,输出被重定向到myout.file文件中。

PS.粗略看一下,发现shell脚本和python脚本感觉有些像,不用封号结尾,直接使用变量。

分类: Linux

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑