碎碎碎碎屁

Tag: Ubuntu

$PS1增加py的virtualenv支持

by on 4月.09, 2012, under ,

刚刚开始学用python的virtualenv,顺带用上了virtualenv wrapper,发现默认会在PS1之前加上($VIRTUAL_ENV),不好看啊,和我原来的不匹配。然后就花了几小时去改之前就写的很头大的PS1。现在显示到右边啦~

新版PS1效果图

PS1='${debian_chroot:+($debian_chroot)}`a=$?;if [ $a -ne 0 ]; then a=" "$a; echo -ne "\[\e[s\e[1A\e[$((COLUMNS-2))G\e[32m\e[1;41m${a:(-3)}\e[u\]\[\e[0m\e[2m\]"; fi`\[\033[01;32m\]\[email protected]\[\033[01;35m\]\h\[\033[00m\]:\[\033[01;34m\]`pwd`\[\033[00m\]`B=$(git branch 2>/dev/null | sed -e "/^ /d" -e "s/* \(.*\)/\1/"); if [ "$B" != "" ]; then S="git"; elif [ -e .bzr ]; then S=bzr; elif [ -e .hg ]; then S="hg";B="$(hg branch)"; elif [ -e .svn ]; then S="svn"; else S=""; fi; W="\`showvirtualenv 2>/dev/null \`"; if [ "$W" != "" ]; then if [ "${W:0:14}" = "showvirtualenv" ]; then W=""; else W="workon:$W"; fi; fi; if [ "$S" != "" ]; then if [ "$B" != "" ]; then M=$S:$B; else M=$S; fi; fi; if [ "$W" != "" ]; then if [ "$M" = "" ]; then M=$W; else M="$W $M"; fi; fi; [[ "$M" != "" ]] && echo -en "\e[s\e[$((COLUMNS-${#M}-1))G\e[33m\e[1;40m($M)\e[0m\e[u"`\n\[\033[01;34m\]\$\[\033[00m\] '
不分割了,太损血了。

Leave a Comment :, , , more...

openvz下ubuntu-lucid的syslog-ng的reload问题

by on 10月.11, 2011, under

昨天发现vps邮箱经常有root的邮件

/etc/cron.daily/logrotate:
syslog-ng: Error setting capabilities, capability management disabled; error=’Operation not permitted’

放狗搜后发现有这个,里面说

SOLUTION

syslog-ng –no-caps

Debian:
/etc/default/syslog-ng:SYSLOGNG_OPTS=”–no-caps”

于是注释了/etc/default/syslog-ng里面的

SYSLOGNG_OPTS=”–no-caps”

可是今天,居然还是有邮件,不过内容变了

/etc/cron.daily/logrotate:
start-stop-daemon: unrecognized option ‘–no-caps’
Try ‘start-stop-daemon –help’ for more information.
invoke-rc.d: initscript syslog-ng, action “reload” failed.
error: error running non-shared postrotate script for /var/log/syslog of ‘/var/log/syslog ‘
run-parts: /etc/cron.daily/logrotate exited with return code 1

再放狗搜找到了这个bug,我的syslog-ng版本号是3.1.2-1,在3.1.2-2修复了,可是没有3.1.2-2的deb包,乱入debian的deb包也有很多依赖问题。
本来都想手动做deb包了,然后搜到了launchpad的这个diff了一下看到,就是改了下syslog-ng.init。

坑爹啊,手动改/etc/init.d/syslog-ng的syslogng_reload()部分,像刚才这个diff一样删掉 $SYSLOGNG_OPTS,好了,世界安静了~

Leave a Comment :, , , , more...

记录下自己的$PS1

by on 10月.07, 2011, under ,

Steve Jobs, 1955 – 2011

今天又在弄$PS1,结果发现以前写的都看不懂,好吧,写篇文章记录一下,先来看下完整的
PS1='${debian_chroot:+($debian_chroot)}`a=$?;if [ $a -ne 0 ]; then a=" "$a; echo -ne "\[\e[s\e[1A\e[$((COLUMNS-2))G\e[32m\e[1;41m${a:(-3)}\e[u\]\[\e[0m\e[2m\]"; fi`\[\033[01;32m\]\[email protected]\[\033[01;35m\]\h\[\033[00m\]:\[\033[01;34m\]`pwd`\[\033[00m\]`B=$(git branch 2>/dev/null | sed -e "/^ /d" -e "s/* \(.*\)/\1/"); if [ "$B" != "" ]; then S="git"; elif [ -e .bzr ]; then S=bzr; elif [ -e .hg ]; then S="hg";B="$(hg branch)"; elif [ -e .svn ]; then S="svn"; else S=""; fi; if [ "$S" != "" ]; then if [ "$B" != "" ]; then M=$S:$B; else M=$S; fi; fi; [[ "$M" != "" ]] && echo -en "\e[s\e[$((COLUMNS-${#M}-1))G\e[33m\e[1;40m($M)\e[0m\e[u"`\n\[\033[01;34m\]\$\[\033[00m\] '
这个也可以从我github里找bashrc的
效果图如下
$PS1的效果图
有以下一些特性:分两排显示,前一排最后会显示错误$?,第一排地址显示绝对路径,第一排结尾显示版本控制的信息 (continue reading…)

5 Comments :, , more...

2011春节前的实习小结

by on 1月.31, 2011, under review,

寒假到现在已经实习10天了,今天写了个小总结,全当review了。

1-17 周一
看p1、p2故障报告。重装自己的vps。

1-18 周二
配置vim,写php抓取站

1-19 周三
1-20 周四
都在写php

1-21 周五
没来

1-24 周一
php抓取站基本完工。写了个mysql每日备份,定期删除的shell脚本。

1-25 周二
修改周一的shell脚本。研究yum的第三方源:iuscommunity。

1-26 周三
虚拟机里安装研究Ubuntu Enterprise Cloud,由于需要硬件vt支持,只好放弃。下午看kvm文档。

1-27 周四
台式机开始装gentoo,下午装好最基本的,编译两次内核,能够上网了。

1-28 周五
装gentoo,主要是x和显卡驱动还有问题。

1-30 周六
装gentoo,装好gnome。下午装kvm,设置好桥街网络,但是还是没装子机。

感觉这两周主要做了两件事情,一是写php抓取站,二是装gentoo。

php抓取站是个放在新浪sae上的一个小东西,抓取的是杭州气象信息,存入数据库的。对外的调用还没写,但是有两个rss输出,一个是自己生成的,一个是feedbrner压制的,还有一个twitter:@hztqyb。感谢@yaofur在n久前提供的代码,虽然只用了两个正则。
在写的过程中熟悉了php的一些基本东西,以及如下一些php函数:

preg_match_all、preg_match
这两个是用正则来匹配文字段的,但其中的正则我是抄的不是自己写的。输出一个是二维数组一个是数组。
mb_convert_encoding
这个是用来转换文本编码的。
substr、str_replace
这两个也是处理字符,前一个是取其中一段字符,后一个是替换。
md5
这个用来校验。
mktime、date
这两个用来处理时间信息。
file_get_contents、file_put_contents
这两个是文件的读写,用来静态化,提高读取速度。

大部分是靠翻php.net上面的文档解决问题的。同时还研究了一下rss输出,现在rss输出主流有两种,rss2.0、atom。本来想用atom的,但是资料比较少,上手比较慢,故选用了rss2.0。写出来的xml能够通过feedvalidator.org验证。

装gentoo是这周后期才开始做的,之前由于不知道公司台式机能自己装系统,所以一直没下手,等知道后就果断装了。这是我第三次装gentoo,第一次在虚拟机里,没装桌面,能上网;第二次是寝室里的台式机,内核还有问题,不能上网,桌面也没装;这次的目标是装好桌面,装好kvm,kvm里装好windows。安装是用gentoo的mini.iso放到u盘里做成livecd来引导的,安装过程主要参考官方文档,不过还是有点想说的。开始emerge之前要写好make.conf,至少写好cpu类型,同时编译的那个-j*。先emerge ccache和喜欢的编辑器vim,ccache据说有加速的,这个官方文档编译优化里有提到。装那3个基础软件包cron、syslog、locate的时候我记得slocate好像有问题,我是装mlocate。到现桌面能起来了,显卡驱动情况不明,kvm编译好但还没装子机。

2 Comments :, , , , , , , , , more...

我与linux的叉叉

by on 9月.25, 2010, under

今天看到推上有人在说什么时候接触linux的,好吧,我也来怀旧下。

高考结束完的2008年6月,我在网上申请了张ubuntu 8.04.1的cd,7月份就收到了。拿块80g硬盘里的一个分区安装了,完全没经历的摸索。不知道/分区是一定要挂载的,只挂载了/home,还在想为嘛不能下一步。不知道装好后更新可以跳过,还让他默默的用几k速度连默认国外源。唉,反正完全在泥沼里折腾啊。最后慢慢装好能用了,还装了一个杀毒的用来杀win下的毒。后来这个系统在升级到8.10的时候失败,就荒废了。

入大学后,最有力的事就是果断加入了精弘网络,这是个校级组织,关键是我在宣传资料上看到了linux字样,所以果断入了,gmail邮箱里还有我当年的报名表。大一参加了几次培训,说是培训,差不多都是ohsc大大在给我们做展示,不过也有很多收获,基础概念型学习。

ubuntu出9.04的时候买了块移动硬盘,为了实现多pe和多引导,装了grub4dos,还装了9.04在移动硬盘里,给人杀杀毒,装装13还是可以的。由于9.10用grub2,一直没在移动硬盘grub4dos下启动进去,故也荒废掉了。

9.04年代,还有一段。为了加入精弘网络服务器部,要通过一个考核——在一星期内在centos上用yum搭建lamp环境,现在想想几分钟的事,当时真的好虚啊,5天很努力的完成了,其实我一直在用.bash_history偷师前面做的几位~

9.10的年代,我开始在精弘网络里管理几台centos5.3的服务器,由于有任务在身,而且对于我异常艰巨,花费了几个月研究tos(流量控制),终于写出一个能用的脚本,慢慢优化后能较完美的使用了。这段时间,基础功算是练过了,也算是正式接触linux。

10.04的年代,已经对安装使用不太有问题了,但是在学校电脑还是在用win7。暑假,这个暑假末,回学校之后,开始正式使用ubuntu 10.04做为桌面系统,反正使用应该没碰到问题过,迫不得已回win的一次,是因为一个别人给我的只读加密.pps幻灯片我怎么都没办法打开。其实我对操作系统的选择已经很随意了,家里用着朋友5年前的iBook G4,10.4的系统(不是ubuntu 10.04,是mac os 10.4),装不来chrome的powerpc,现在依旧很蛋定的用着经常崩溃的safari 3,前几天刚升到safari 4。

我多久没去win下了?不知道,反正就是扣扣比较难受,网银什么的还没用过,那个那个,到时候再拿出我那只剩256m内存20g硬盘的小x40好了么。我在想我下一台电脑会不会是mbp呢?是会呢还是会呢还是会呢?我要自己赚钱,求实习推荐,运维相关的最好了。

8 Comments :, , , , more...