十一 06

python的日志模块logging

1.简单的将日志打印到屏幕

 

屏幕上打印:
WARNING:root:This is warning message
默认情况下,logging将日志打印到屏幕,日志级别为WARNING;
日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别。
2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置

 

logging.basicConfig函数各参数:
filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,’w'或’a’
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
3.将日志同时输出到文件和屏幕

 

4.logging之日志回滚

 

从上例和本例可以看出,logging有一个日志处理的主对象,其它处理方式都是通过addHandler添加进去的。
logging的几种handle方式如下:

 

由于StreamHandler和FileHandler是常用的日志处理方式,所以直接包含在logging模块中,而其他方式则包含在logging.handlers模块中,
上述其它处理方式的使用请参见python2.5手册!
5.通过logging.config模块配置日志

上例3:

上例4:

 

十一 05

CentOS设置服务开机启动的两种方法

1、利用 chkconfig 来配置启动级别

在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd、mysqld、postfix等,安装后系统默认不会自动启动的。就算手动执行 /etc/init.d/mysqld start 启动了服务,只要服务器重启后,系统仍然不会自动启动服务。 在这个时候,我们就需要在安装后做个设置,让系统自动启动这些服务,避免不必要的损失和麻烦。 其实命令很简单的,使用chkconfig即可。

比如要将mysqld设置为开机自动启动:

# chkconfig mysqld on

要取消掉某个服务自动启动,只需要将最后的参数 “on” 变更为 “off” 即可。
比如要取消 postfix 的自动启动:

# chkconfig postfix off

值得注意的是,如果这个服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去:

# chkconfig –-add postfix

如果要查询当前所有自动启动的服务,可以输入:

# chkconfig -–list

如果只想看指定的服务,只需要在 “–-list” 之后加上服务名就好了,比如查看httpd服务是否为自动启动:

# chkconfig –-list httpd

httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

此时0~6均为off,则说明httpd服务不会在系统启动的时候自动启动。我们输入:
# chkconfig httpd on

则此时为:
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

这个时候2~5都是on,就表明会自动启动了。

2、修改 /etc/rc.d/rc.local 这个文件:

例如将 apache、mysql、samba、svn 等这些服务的开机自启动问题一起搞定:

# vim /etc/rc.d/rc.local
#添加以下命令
/usr/sbin/apachectl start
/etc/rc.d/init.d/mysqld start
/etc/rc.d/init.d/smb start
# -d 表示svnserve将会作为一个服务程序运行在后台
/usr/local/subversion/bin/svnserve -d

十一 05

centos中crontab(计时器)定时任务用法详解

关于crontab

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。
通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

安装crontab:

说明:

vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

查看crontab服务状态:

手动启动crontab服务:

其他命令: Continue reading

十一 05

更改vim默认的 “换行缩进值”

CentOS如何更改vim缩进,默认的 “换行缩进值”
找到/etc/vimrc文件在文件,用vim将其打开,在此文件开头加上如下
1)设置(软)制表符宽度为4
set tabstop=4
set softtabstop=4
2)设置缩进的空格数为4
set shiftwidth=4
3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
4)设置使用 C/C++ 语言的自动缩进方式
set cindent
5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
6)如果想在左侧显示文本的行号,可以用以下语句:
set nunber
在此文件尾部加入如下信息:
最后,如果没有下列语句,就加上吧:
if &term==”xterm”
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
还有中文显示问题,
可以添加:
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
上面这两行命令即可

修改vi显示行号或vim显示行号的请到这里

十一 05

vim打开多个文件、同时显示多个文件、在文件之间切换(使用远程工具时同样可用)

远程工具MobaXterm

打开多个文件:
1.vim还没有启动的时候:
输入
vim file1 file2 … filen便可以打开所有想要打开的文件
2.vim已经启动
输入
:open
可以再打开一个文件,并且此时vim里会显示出file文件的内容。

分屏显示多个文件:
:split
:vsplit
:sp
:vsp

在文件之间切换:
1.文件间切换
Ctrl+6—下一个文件
:bn—下一个文件
:bp—上一个文件
对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。
2.在窗格间切换的方法
Ctrl+w+方向键——切换到前/下/上/后一个窗格
Ctrl+w+h/j/k/l ——同上
Ctrl+ww——依次向后切换到下一个窗格中

十一 05

MySQLdb ImportError: libmysqlclient.so.18解决方法

ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

初装系统,运行制作完成的python项目,出现上面提示信息,说明缺少文件libmysqlclient.so.18,解决方案:

1、全局搜索libmysqlclient.so.18

# find / -name libmysqlclient.so.18

结果为:/www/wdlinux/mysql-5.5.58/lib/libmysqlclient.so.18

2、做软连接

32位系统
# ln -s /www/wdlinux/mysql-5.5.58/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

64位系统
# ln -s /www/wdlinux/mysql-5.5.58/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18

3、测试是否成功

# python
# import MySQLdb
#
如果这里不报错,则说明问题解决。

十一 05

初装CentOS6.x系统常用安装模块

CentOS安装zip、unzip

# yum install -y zip unzip

安装setuptools,下载页面https://pypi.org/project/setuptools/#files

# get https://pypi.python.org/packages/45/29/8814bf414e7cd1031e1a3c8a4169218376e284ea2553cc0822a6ea1c2d78/setuptools-36.6.0.zip#md5=74663b15117d9a2cc5295d76011e6fd1
# unzip setuptools-36.6.0.zip
# cd setuptools-36.6.0
# python setup.py install

安装pip,下载页面https://pypi.org/project/pip/#files

# wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
# tar -zxvf pip-9.0.1.tar.gz
# cd pip-9.0.1.tar
# python setup.py install

十一 05

CentOS6.x安装python2.7.14

python安装,python多版本并存

1、 CentOS系统python默认版本是2.6.x,现在我们要在这种环境下安装2.7.14

  python所有版本

  下载:# wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz

  用xz解压工具:# xz -d Python-2.7.14.tar.xz

                      #tar -xf Python-2.7.14.tar

           进入安装文件目录进行安装

         #cd Python-2.7.14

         # ./configure

         # make

         # make install

2.1、 检查python版本,如果依然是2.6,则将系统指向的python从2.6修改到2.7版本

#/usr/local/bin/python2.7 -V
备份一份python
# mv /usr/bin/python  /usr/bin/python.bak
创建文件链接
# ln -s /usr/local/bin/python2.7 /usr/bin/python

2.2、分支:或者不使用2.1的方法和后续方法,直接在/usr/bin文件夹下创建python27文件链接,之后在使用python时的命令就使用python27就可以了,如果是想python2x与python3x并存的话创建文件链接就使用python3。方法如下:

创建python2.7版本的文件链接
# ln -s /usr/local/bin/python2.7 /usr/bin/python27

3、特别的,yum是基于python2.6才能正常工作,需单独将yum指向python2.6版本

命令:用vi打开yum文本
#vi /usr/bin/yum
将文件里的头一行,也就是指定python环境的那行代码!/usr/bin/python,修改成:!/usr/bin/python2.6

命令:# a:在光标后插入文本

Esc退出文本编辑,输入:#:wq 保存修改并退出vi编辑。

4、检查python版本:#python –v 可以看到版本是2.7了

5、其它,关于ln命令

ln -s 源文件 目标文件

举例:

在目录/usr/bin下创建一个名为python的/usr/local/bin/python2.7(这个文件)的链接,
# ln -s /usr/local/bin/python2.7 /etc/bin/python
建立两者之间的链接,
即访问/etc/bin/python时,实际是在访问/usr/local/bin/python2.7

十一 05

让CentOS中vi和vim显示行号

本次显示行号
vi(或vim)打开某文件,输入命令 :set number

本次不显示行号
vi(或vim)打开某文件,输入命令 :set nonumber

使用以上方法,在下次打开时还是恢复了原来的状态,如果想第次打开不恢复原状态,那么我们就要修改vi(或vim)的配置文件了,如下:

vi(或vim)的配置文件地址: /etc/virc(或/etc/vimrc)

显示行号:使用vim打开/etc/virc(或/etc/vimrc),在文件的最末尾换行输入 set number,保存并退出。

不显示行号:使用vim打开/etc/virc(或/etc/vimrc),在文件的最末尾换行输入 set nonumber,保存并退出。

我个人还是喜欢显示行号的。

修改vi缩进或vim缩进的请到这里

十一 04

linux各文件夹的作用

linux下的文件结构,看看每个文件夹都是干吗用的
/bin二进制可执行命令
/dev设备特殊文件
/etc系统管理和配置文件
/etc/rc.d启动的配置文件和脚本
/home用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp公用的临时文件存储点
/root系统管理员的主目录(呵呵,特权阶级)
/mnt系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var某些大文件的溢出区,比方说各种服务的日志文件
/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6存放xwindow的目录
/usr/bin众多的应用程序
/usr/sbin超级用户的一些管理程序
/usr/doclinux文档
/usr/includelinux下开发和编译应用程序所需要的头文件
/usr/lib常用的动态链接库和软件包的配置文件
/usr/man帮助文档
/usr/src源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin本地增加的命令
/usr/local/lib本地增加的库 Continue reading