Category: Life

  • python面向对象实例

    最最简单基础的结构了

    #!/usr/bin/env python
    
    class Server():
        def __init__(self, ip, hostname):
            self.ip = ip
            self.hostname = hostname
        def set_ip(self, ip):
            self.ip = ip
        def set_hostname(self, hostname):
            self.hostname = hostname
        def ping(self, ip_addr):
            print "Pinging %s from %s (%s)" % (ip_addr, self.ip, self.hostname)
    if __name__ == '__main__':
        server = Server('192.168.1.244', 'ibm')
        server.ping('192.168.1.105')

    解释

    定义一个Server类

    在类中有初始化函数,set_ip,set_hostname,ping函数

    引用实例server,执行server.ping函数

  • 我的evernote使用心得

    以下自己对于evernote这种与云相关的笔记的理解,在使用之前也搜过不同人的用法,最后形成自己的用法。

    工具是为人服务的,每个人用工具的习惯都不一样,不能成为工具的奴隶。我不喜欢把什么东西都往里面放,再花大把的时间去整理,有整理癖的性格该改改了。好东西太多了,只能关注对自己有用的东西。

    我的evernote中,只存有纯文字,以致于每个月分配的60MB流量,我最多也用不到1MB。图片,附件什么的都不放进去,要不dropbox该不高兴了。但主要原因是有那些东西会显得乱,而且我始终认为文字的力量是最伟大的。

    使用evernote,最多只保留10个笔记本(包含子笔记本),笔记本再多,说明有的内容类型可以归到一类了。

    第一个笔记本名叫“swap”,暂存的笔记

    这里面的笔记是随手记下来的,比如说快递单号,电话号码,网址,小知识点,欠谁的钱。不必要的用完就删,是把笔记删掉,而不是把内容删掉,这样以后还能到回收站里收到它。这个要定时清理。

    第二个笔记本是“备用”

    把当前的地址,常用邮箱,支付宝号,可以送的礼物,mac地址,dns,各种卡号,序列号,验证问题等等。当然要信得过evernote才行,这些够私密了。这些东西有人需要,直接发出去,复制肯定比手动输入来得准确。

    第三个笔记本是”每天读一遍”

    把一些需要提醒自己的事,比如锻炼的好处,好习惯,少走弯路的方法等。

    第四个笔记本是”长期记录”

    比如好电影,读书清单,大目标,体重记录等。

    第五个笔记本是“最先完成”

    这里面只有两个笔记,一个是“直到完成为止的”,另外一个是“一次性完成的”。比如申请google adsense,总是被拒,把它放到直到完成为止里面。一次性完成的,比如写一个小脚本,打算买的日常用品。完成后,把里面的内容删掉,这个笔记本当作todo list来用。

    第六个笔记本是“问题解决思路”

    这个相当于知识库了,把问题和解决方法记下来,积累经验,不会经常去动他。公开的知识还是整理到博客中,这样思维清晰,回顾时不受查看地点和环境的影响。

    其他笔记本就是一些工作笔记一类的。

    除了在笔记本上做了一些事情,还有技巧类的,快捷键类的

    如加密文本,待办事项等,可以按F1获取帮助。

    现在已经离不开evernote了,各种终端都有客户端,它的安全性也是我日益警惕的问题。更重要的东西还是用脑子记吧。

  • mount,umount用法

    命令格式:

    mount -a ,会把/etc/fstab列出的文件系统挂载

    mount -t 类型 -o 挂接方式 源路径 目标路径

    -t 详细选项:

    光盘或光盘镜像:iso9660
    DOS fat16文件系统:msdos
    Windows 9x fat32文件系统:vfat
    Windows NT ntfs文件系统:ntfs
    Mount Windows文件网络共享:smbfs(需内核支持)推荐cifs
    UNIX(LINUX) 文件网络共享:nfs

    -o 详细选项:

    loop :用来把一个文件当成硬盘分区挂接上系统
    ro :采用只读方式挂接设备
    rw :采用读写方式挂接设备
    iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
    remount :重新挂载(相当于umount再mount),后面可接具体路径
    noatime: 以不更新access time的方式挂载,在文件数目过多注重性能而不注重access time时使用,效果好。

    使用实例:

    挂载windows文件共享

    mount -t smbfs -o username=admin,password=123456 //192.168.1.2/c$ /mnt/samba
     mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname

    挂载Linux文件nfs共享

    mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www

    挂载ntfs格式USB移动硬盘

    mount -t ntfs /dev/sdc1 /root/usb

    挂载CDROM

    mount /dev/cdrom /home/cd

    单用户模式重新挂载根分区

    mount -o remount,rw /

    umount命令用于解挂一个文件系统,之前挂载的哪就解挂哪,一般要退出对应目录且不再使用,否则会提示  umount: /mnt/iso: device is busy.

    umount [-f] directory ,如果文件系统正在使用时会无法解挂,可使用-f,强制解挂

    取消挂载

    umount /dev/cdrom /home/cd

    iso相关

    挂载iso镜像

    mkdir -p /mnt/iso
    mount -o loop -t iso9660 XenServer-6.1-install-cd.iso /mnt/iso

    制作光盘镜像

    当cdrom有光盘时

    cp /dev/cdrom ~/mydisk.iso

    制作指定目录/root/dir的镜像

    mkisofs -r -J -V iso-real-name -o /usr/mydisk.iso /root/dir

    高级例子

    mount -o bind或mount –bind

    一盘mount都是挂载设备文件,使用mount -o bind可以把目录,文件挂载到另一个目录,文件

    如把/tmp/hosts文件挂载到/etc/hosts

    touch /tmp/hosts

    这时/tmp/hosts是空的,当将/tmp/hosts挂载到/etc/hosts后,注意顺序

    mount -o bind /tmp/hosts /etc/hosts

    使用mount命令可以查看到/tmp/hosts on /etc/hosts type none (rw,bind)

    发现/tmp/hosts与/etc/hosts都是空的了,当umount /tmp/hosts之后,又恢复成原来的/etc/hosts。这样可以随便别人用/etc/hosts,当别人用完之后,umount就能切换过来。

    mount -o bind参考:http://nvd11.blog.163.com/blog/static/2000183122012720113256766/

  • 值得珍藏的瞬间

    快乐的瞬间

    幸福的瞬间

    心碎的瞬间

    无耐的瞬间

     

  • 存在的asp文件却提示404

    前段时间有一客户要把之前的asp网站搬家,2003跑IIS,asp企业站有点过时的东西,现在也只有大学的课上还会搞这个吧?

    配好之后打开index.asp却提示404错误。

    搜索后发现IIS已经默认不支持ASP。开启方法:

    IIS-WEB服务扩展 -> Active Server Pages -> 允许

  • linux中pkill,kill,killall的用法

    killall也可以跟进程名

    killall – kill processes by name

    killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent.

    kill 是要据进程号来杀死进程,加-9强制杀死

    结合ps 或 pgrep

    pgrep looks through the currently running processes and lists the process IDs which matches the selection criteria to stdout. All the criteria have to match. For example,

    $ pgrep -u root sshd

    will only list the processes called sshd AND owned by root.

    但是这样只会显示进程号,怎么办? 永远不要忘了man一下

    man pgrep里给出了实例

    我试了一下,如

    ps `pgrep -u www-data` 或者 ps $(pgrep -u www-data) 可以查看到详细的属于www-data用户的进程

    root@debian:~# ps `pgrep -u www-data`
    PID TTY STAT TIME COMMAND
    3128 ? S 0:00 : worker process
    12245 ? S 0:04 php-fpm: pool www
    12246 ? S 0:04 php-fpm: pool www
    12247 ? S 0:05 php-fpm: pool www
    12248 ? S 0:06 php-fpm: pool www
    12249 ? S 0:05 php-fpm: pool www
    12250 ? S 0:05 php-fpm: pool www