2010年6月9日星期三

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))]
###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡
 
and, or  已经and-or一起用。
and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。
or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假
 
lambda可快速定义最小值函数
 
g = lambda x:x*2
g(3)
6
(lambda x:x*2)(3)
 
doc string
print getattr(object,mothod).__doc__
 
ljust
ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断
 
-----面向对象
首先导入,你可以选择import module or from module import module
如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。
如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。
如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突
 
-----类的定义
class Lofs
   pass
  这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。
  这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。
  你可能猜到了,在类中的所有东西都要缩近,就象位于函数、if 语句,for 循环,诸如此类的代码。第一条不缩近的东西不属于这个类。
-----
class FileInfo(UserDict):
    "store file metadata"
    def __init__(self, filename=None):
        UserDict.__init__(self)       
        self["name"] = filename 
 
了解何时去使用 self 和 __init__
当定义你自已的类方法时,你必须明确将 self 作为每个方法的第一个参数列出,包括 __init__。当从你的类中调用一个父类的一个方法时,你必须包括 self 参数。但当你从类的外部调用你的类方法时,你不必对 self 参数指定任何值;你完全将其忽略,而 Python 会自动地替你增加实例的引用。
 
 
 
--
Alex Tu
-----------------------------------------------------------
ShangHai,China

pgsql

mysql                      psql

SHOW DATABASES;           \l
USE db-name;              \c db-name
SHOW TABLES;              \d
SHOW USERS;               \du
SHOW COLUMNS;             \d table-name
SHOW PROCESSLIST;         SELECT * FROM pg_stat_activity;
SELECT now()\G            \x 可以打开和关闭类似\G功能
SOURCE /path.sql          \i /path.sql
LOAD DATA INFILE ...      \copy ...
\h                        \?


--
Alex Tu
-----------------------------------------------------------
ShangHai,China

虚拟技术使用

Vmware ESXI 开始实用command line ,其实还是有其他登录方式的只不过用client管理比较好看而已。
Host装完以后, 可以alt-f1 然后输入unsupported再打回车符。 就可以进到里面 文章可以参考。 开启本机ssh和改变host.
vi /etc/inet.conf uncomment ssh. 然后在/etc/init一下, 不会影响已经启动的虚拟机。 然后直接可以从外网链接到command模式下.
 
由于自己已经能顺利实现在solaris上,讲zone占到nfs上。 具体步骤如下:

 

  1. make sure NFS is having enough space to install.
  2. make sure you have root permission.
  3. cd Path
  4. mkfile 6G zone ( the solaris standard installation will cost 6G and the filename is better the same as zone name)
  5. lofiadm ( run this command for confirming the link between path and the virtual devices)
  6. lofiadm –a /Path/zone /dev/lofi/* ( please count the * one by one)
  7. newfs /dev/lofi/*
  8. mkdir /localpath/zone (localpath as the old local zone path, zone name as NFS’ zone)
  9. mount /dev/lofi/* /localpath/zone
  10. chmod 700 /localpath/zone
  11. vi /zone.cfg (please modify the ip address, zonepath as required , do not modify the others)
  12. zonecfg –z zone –f /zone.cfg
  13. zoneadm list –ivc (confirm the zone had been listed, correct)
  14. zoneadm –z zone install
  15. zoneadm –z zone boot
  16. zlogin –C zone (set the normal way, use root000 as root password)
  17. vi /etc/sshd_config (commont root login)
  18. svcadm restart sshd
现在想试着将用vmware exsi使用nfs模式,将虚拟机装到nfs上,用windows的client端很容易实现挂在,无论是用nis share出来的盘,或者用netapp share出来的盘, 这样可以便于备份和便于换空间。  注意在写的使用用netapp的要写好/vol 之前因为没写,导致mount会有问题。
加载以后,数据饼图显示的话那块。
 
 
ESXI 相对于ESX 被阉割了很多功能,但是对于一般小型企业而言,已经够用。lun的storage需求基本没有。
在command命令下加在nas/NFS的share空间,esxcfg-nase -a /name -o hostname -s /vol 即可


upgrade 3.5 to 4.0 u1 use ESXi-4.0.0-1.9.208167-upgrade-release.zip
upgrede 4.0 to 4.0 u1 use ESXi-4.0.0-update01.zip
--
Alex Tu
-----------------------------------------------------------
ShangHai,China