豪翔天下

Change My World by Program

0%

home

这一天终于还是来了,终于到了这个父母翻了好几遍老黄历还问了算命先生的约定日子。女朋友也专门请假过来,父母也是拉了几十个亲戚过来😂。虽然老家的亲戚总是能带给我惊喜(xia),但是这一天还是开开心心地过去了。我觉得上天总是比较眷顾我,搬家第二天就下大雨,订婚也是,前后都下雨,就当天的天气最好。

压力肯定是有的,每个月2500的房贷,30年,不过,想想我这种对理财一点儿不了解的人,这可能算是这辈子少数的几次可以应对通货膨胀的投资行为了,所以我也是能贷就尽量多贷一点,相信自己,相信党,相信国家。毕竟,从大三到大四,重庆一套房子的放假就涨了我现在的年薪,然后从我买房到我住进去,又涨了我几年的年薪,不是我年薪低,是重庆这一年来的放假真的是直线上升,现在,只能庆幸自己下手还算早,不然,我可能就再也买不起房了。真是傻人有傻福啊,根本不懂房产却下手得比较准确。

以前可从来没想过毕业不到一年我就买了房子,虽然是小两房,但至少够我和女朋友住十年了,顺便生个女儿也能住得下。而且走路十分钟以内就能从幼儿园一直读到高中,虽然不是学区房,但是这其实在重庆也是很少见的。他们都说,我真积极,连婴儿床都买好了,其实我暂时还没想过要生孩子,只是以防万一而已😁,反正有了这张婴儿床,我小小的次卧居然能睡7个人,搬家当天晚上9个大人,6个小孩子居然没打地铺就睡下了,看来以后得多叫些朋友来玩儿,不然真的浪费了这些床了。

有了大冰箱,终于可以做自己想做的菜了;有了大电视,终于可以在55英寸4K上面玩儿ps了;有了大沙发,终于可以不用没晚回家就上床了;有了大阳台,终于可以沐浴每天清晨的阳光了;有了大窗帘,终于可以在家放心的裸奔了;有了双层隔音玻璃,终于可以在晚上好好看”大片”了;有了全套智能家居,终于可以好好的玩玩儿极客玩具了;有了千兆网线,终于可以尽情看大片了;有了大浴室,终于可以好好享受洗澡时光了。刚住进去几天,感觉一切都是那么的美好,这才是人生啊,每天早早的下班,回到家做饭吃饭,然后躺沙发上边看电视,边玩电脑,边玩手机。。。

其实,这并不是我预想中的搬家。墙上挂的,地上铺的,桌子上放的装饰品我都还没装呢,本来就是现代简约的风格,结果连一点儿装饰都没有,所以现在看起来特别简单,主要父母急着让我住进来,我也没办法了。而且现在女朋友还没毕业,再等两个月我们就能真正住进新家了。

面对未来,我还是那句话,美好的生活才刚刚开始。

zabbix

默认用户名Admin,默认密码zabbix

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 先安装MySQL,根据[初始化数据导入](https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts)来创建用户
# 安装主程序
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql # 服务端安装
yum install zabbix-agent # 客户端安装
# 基本配置,vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

# 安装zabbix的辅助工具
yum install zabbix-get zabbix-sender
zabbix_get -s 客户端IP -k "agent.ping" # 在服务端运行该命令可检测服务端是否能娶到数据

# 启动服务
/etc/init.d/zabbix-server start

# 安装完成后会在httpd目录下面的conf.d生成相应的配置文件,唯一需要改的就是它注释了的date.timezone,修改一下httpd的监听端口和IP就可以访问了,默认用户名密码是Admin zabbix,注意大小写

监控配置

[添加自定义监控项目](http://yangrong.blog.51cto.com/6945369/1548670)
[邮件报警设置](http://www.osyunwei.com/archives/8113.html)

常用参数

1
2
3
4
5
6
7
8
9
10
11
--connect-timeout:设置最大连接时间
-d:传递数据,可以是JSON数据也可以是直接的POST数据
-F: 发送form表单数据的一个参数
-I:仅显示文档信息(HTTP状态码什么的)
-k:禁用ssl验证
-o/-O: 下载文件(前者指定下载文件名,后者不用指定)
-s:静默模式,不输出任何东西
-x: 设置代理,代理一定要加端口
-X:请求方式,GET、POST、DELETE等
-H: 设置请求头,比如-H "Content-Type: application/json"
--location: 自动处理重定向
阅读全文 »

我的kindle里面收藏了太多的书,此书就是一本我也不知道什么时候一时兴起将其收藏的,光看书名还以为是一部心灵励志类的小说,没想到竟是包含人生、哲理、财经、政治的集大成者。自然,在看本书前我对作者也是一无所知,到后面越看越觉得作者不是等闲之辈,便去维基了一下:吴晓波,就是那个《激荡三十年》和《跌宕一百年》等著作及纪录片的作者,他的《大败局》被评为‘影响中国商业界二十本书’之一。一路走来,吴晓波亲身经历了中国改革开放的几十年,并深入其中,握其精髓,无论书中哪一篇文章都让我感觉仿佛身临其中,无法自拔。

其实,这部作品从形式上来说是一篇文集,“把生命浪费在美好的事物上”只是这部著作其中一篇的标题,作者从人生谈到家国,谈了几个人,仿佛谈了几千年。他不仅经历过,而且还和很多成功或曾经成功的人士聊了很多事,历史的沉浮中升华出自己的理解。其间的内涵可能也只有自己能体会。我想,一个知识分子,姑且这样称呼自己,想要在浮躁的社会中,必然得有自己的一片精深田地,可以入世,但不能抛弃一个知识分子的道德、心境、理想。

当然,另一方面,有人读书的目的就是当前对自己有没有用。客观地说,书的前面一份主要讲一些鸡汤,中间以及后面的部分才是全书的内涵所在,从叙事中领悟不同的人生。

看完这本书,我也忍不住想去看作者其他几本书,光从书名上就感觉是我目前思想境界还未能企及的,所以暂时,放下,等我继续,沉淀。

最后关于“把生命浪费在美好的事物上”这几个字,我一直很喜欢。中考的时候,阅读理解,大意是“珍惜那些浪费的时光”,两个主题其实如出一辙。生命中总有好多的事,我们很喜欢,但是这些事可能无法给我们带来直接的价值,所以很多人尽量选择回避自己所喜欢的,而不得不接受自己不喜欢的。我一直不希望成为这样的人,因为这样子活着,真的好累。在这个浮躁的社会,每晚拿出kindle,摆上一杯清水,就这样,静静地看,这一刻你会发现,你的灵魂终于跟上了你的身体。

语录

其实,人生如草,活的就是“从容”两字。

这一生中,你遇见怎样的人,然后有机会成为那样的人。

我们对这个世界还是这么好奇,我们还有舍弃一切的勇气,即便手中的黄金变成了砂砾,但若放手出来,空掌仍能握铁。

你看,我们对这个世界还是这么好

你看,我们对这个世界还是这么好奇,我们还有舍弃一切的勇气,即便手中的黄金变成了沙砾,但若放手出来,空掌仍能握铁。还是邱兵同学说得好:“我只知道,我心澎湃如昨。”

自由是世俗的,它不在空中,不在别处,它就在地上。作为一个读书人,你能否自由地支配时间,你能否自由地选择和放弃职业,你能否自由地在四月去京都看樱花,你能否自由地与富可敌国的人平等对视,你能否自由地抵制任何利益集团的诱惑,这一切并不仅仅是心态或勇敢的问题,而是一种现实能力。

在这个世界上,不是每个国家、每个时代、每个家庭的年轻人都有权利去追求自己所喜欢的未来。所以,如果你侥幸可以,请千万不要错过。

每一件与众不同的绝世好东西,其实都是以无比寂寞的勤奋为前提的,要么是血,要么是汗,要么是大把大把的曼妙青春好时光。

金钱让人丧失的,无非是他原本就没有真正拥有的;而金钱让人拥有的,却是人并非与生俱有的从容和沉重。金钱会让深刻的人更深刻,让浅薄的人更浅薄。金钱可以改变人的一生,同样,人也可以改变金钱的颜色。 把金钱当对手和敌人的人,将一生为金钱而烦恼;而把金钱当朋友的人,将获得金钱给予的欢乐和平和。成为金钱的奴隶,或将金钱视为奴隶的人,都无法与金钱平视对坐。

花开在眼前/已经开了很多很多遍/每次我总是泪流满面/像一个不解风情的少年

一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!

SQLite是一个遵守ACID的关系数据库管理系统,本身是一个嵌入式的程序,并不是客户端/服务端模式的架构,可以直接继承到应用程序中,Pyhton就内置了SQLite的。它的数据是直接存储在一个文件里面的。

安装

OSX: brew install sqlite

Ubuntu: apt install sqlite3

客户端: sqlitebrowser

命令行工具

1
2
3
4
# 首先进入db所在目录
sqlite3 my.db # 这样就能进入命令行了

.tables # 列出当前所有的表,相当于SHOW TABLES;

TroubleShooting

  • **报错sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in thread xxxx **,原因是SQLite是不能多个线程同时访问的,要么直接不使用多线程,更好的做法是在连接是添加check_same_thread参数。

    1
    connect = sqlite3.connect('test.db', check_same_thread=False) # 允许在其他线程中使用这个连接

重庆,真的是一座来了就跑不脱的城市。这里每个人干事都风风火火、雷厉风行,从不脱离带水,但是这里的每一个人骨子里貌似都藏着一份“不与世俗同流合污”的精神。磁器口喝茶,植物园赏花,歌乐山看树,朝天门游江,清晨找个公园晨跑,傍晚全家围着看生活麻辣烫,这样的生活,一直以来都是我所期待的,安静、舒适、简单、美好。曾经看过重庆时尚频道冷暖人生栏目的一个广告(应该是09年以前的了,始终找不到那个视频了),广告语是:当生命在懵懂中灿烂/当情愫在无言中飘零/当我们在百转中千回/其实人生正如季节,冷暖交替/看人生故事,品故事人生。就像这样,当生活麻辣烫看久了,就真的感觉已经离不开这种生活方式了。推荐大家看看《火锅英雄》这部陈坤和白百合主演的富有重庆本色的电影,谈不上精彩,但是重庆的风土人情还是展现得不错的,特别是片中的几处取景,特别不错。
重庆

*haofly拍摄于重庆朝天门*
以上说的并不是今天要讲的重点,重点是我现在发现在小城市生活与大城市一样,同样要面临很多困难,大城市多的是外界施加给你的压力,而小城市则是自己与自己抗争。如今,终于理解什么叫“努力不一定会成功,但是不努力一定会很舒服”。在大城市,压力是很大,但至少身边有各种拼了命也想要成功的朋友,你自然也不会松懈,但小城市就不一样了,你会感觉每个人好像都是安于现状的,每个人好像都没有多大的追求,当然,我并不了解每一个人,这些也只是表面上给我的感觉而已,但是自己还是潜移默化地被感染了。渐渐地,感觉到自己的棱角被磨平了,说不出年少时的豪言壮语,再提起曾经的梦想也只是一闪而过,生怕自己发现了自己的堕落。

近一年的实习经验经历,不仅没让我越来越强,反而使我觉得在这一年的时间里自己并没有多少成长。我是在吃老本吗?不知道。我是在骄傲吗?不知道。我是温水里的青蛙吗?不知道。仔细想想,我什么都不知道,确实,我已经好久好久没有静下来这么想了。遇到人生第一个瓶颈,我竟不知所措,最终选择视而不见,究其原因,可能是懒,因为懒,所以好多该做的事情没有做,因为懒,根本没有去发现什么事情该做,因为懒,连未来怎么走都不知道,只能走一步是一步。但是每个人不都有轻度的懒癌吗,为什么偏偏就我的懒癌就无可救药吗?

近日发现,身边的人都成长十分迅猛,而自己依然止步不前,心里十分焦虑,仿佛压力越大,行动力反而越差,事情越多就越不想做。清明回家,回想了一下自己近一年的实习,我发现,目前我要克服自己的最大的一个缺点就是反省。不会反省,所以每次我发现自己有点懒惰了,然后就会立马忽略;不会反省,有些事情总是一错再错;不会反省,永远不知道自己什么事情做了,什么事情没做,什么事情做好了,什么事情没做好。总之,“吾日三省吾身”,我要为自己制定一个计划,希望能通过这个计划提高自己的反省能力,并从中找到技术瓶颈的解决办法。

每天总结一次,并在每周周末形成一篇完整的周报。

看起来又是一篇无用的计划文,但是闹钟已设,毕竟不都说,21天就可以养成一个习惯了吗,加油,还是得多喝鸡汤呀。

我用的框架还是不少的

Python

Django

  • 全面无轮子
  • 后台管理类网站
  • 快速开发
  • 自带ORM
  • 速度最慢的

Tornado

  • 异步要求大的地方
  • 轻量快速

Flask

  • 轻量快速
  • 后台接口
  • 几个里面速度最快的

PHP

Laravel

  • 全面无轮子

Jekyll

安装

1
2
3
4
5
gem install jekyll
jekyll new myblog
cd myblog
bundle
jekyll serve # 启动服务

这是我们公司的实习内容之一,以前一直以为在单机上部署多个MySQL就是起多个进程就行了,too yuang too simple,原来MySQL默认提供了单机多实例功能的。
配置和使用过程如下(CentOS):

  1. mysqld_multi --example这个可以直接查看MySQL提供的多实例配置文件的配置内容样例,基本上可以直接拿来就用
  2. mysql_install_db --datadir=/tmp/mariadb/data1以这种方式创建多个数据库存放目录,一定要注意不要放在/root目录下,不然会出现什么Aria无法加载的情况
  3. vim /etc/my.cnf内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root # mysql
password = mysql

[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /tmp/hostname.pid2
datadir = /tmp/data1
user = mysql

[mysqld3]
socket = /tmp/mysql.sock3
port = 3308
pid-file = /tmp/hostname.pid3
datadir = /tmp/data2
user = mysql
  1. 启动实例
1
2
3
mysqld_multi start      # 启动实例
mysqld_multi stop
mysqld_multi report # 查看两个实例运行状态

另外,实例的日志文件默认是在实例文件夹下的localhost.localdomain.err文件里,启动完实例后,还要连接实例进行初始密码设置

安装

Server端

yum install -y puppetserver
service puppetserver start  # 有些用的是puppetmaster,如果启动报内存限制,那么修改配置/etc/sysconfig/puppetserver将 JAVA_ARGS="-Xms512m -Xmx512m"修改为JAVA_ARGS="-Xms2g -Xmx2g"

Client端

sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm # 这里要注意版本是6还是7
yum install -y puppet-agent

dashboard的安装

参考文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 首先得有数据库
create database puppetdash # 创建用户
grant all privileges on puppetdash.* to puppetdash@localhost identified by 'password';
flush privileges;

# 安装软件
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm
yum -y install puppet-dashboard

# 修改puppet-dashboard配置
cp /usr/share/puppet-dashboard/config/settings.yml.example /usr/share/puppet-dashboard/config/settings.yml
vim /usr/share/puppet-dashboard/config/database.yml 内容如下:
/usr/share/puppet-dashboard/config/database.yml
production:
database: puppetdash
username: puppdash
password: motorrobot
encoding: utf8
adapter: mysql
development:
database: puppetdash
username: puppdash
password: motorrobot
encoding: utf8
adapter: mysql

# 生成数据
cd /usr/share/puppet-dashboard
rake db:migrate
/etc/init.d/puppet-dashboard start

# 修改puppet的配置
vim /etc/puppet/puppet.conf # 添加内容
report = true
[master]
reports = store, http
reporturl = http://192.168.99.1:3000/reports/upload

# 启动服务
puppetd -t
chown puppet-dashboard /usr/share/puppet-dashboard/log/
chkconfig puppet-dashboard on
chkconfig puppet-dashboard-workers on
chkconfig mysqld on
/etc/init.d/puppet-dashboard restart
/etc/init.d/puppet-dashboard-workers restart

Hello World举例

  1. 新建module

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    cd /opt/puppetlabs/puppet/modules/
    mkdir -p helloworld/manifests/

    vim helloworld/manifests/init.pp # 内容如下:
    class helloworld {
    notify { 'hello, world!': }
    }

    vim helloworld/manifests/motd.pp # 内容如下:
    class helloworld::motd {
    file { '/etc/motd':
    owner => 'root',
    group => 'root',
    mode => '0644',
    content => "hello, world!\n",
    }
    }
  2. 将module添加到主配置文件

    1
    2
    3
    4
    5
    6
    cd /etc/puppetlabs/code/environments/production/manifests
    vim site.pp # 内容如下:
    node default{
    class { 'helloworld': }
    class { 'helloworld::motd': }
    }

测试

分别在两个端启动puppet服务,然后客户端执行puppet agent -t

TroubleShooting

  • 客户端显示”no certificate found and waitforcert is disabled”,可以首先在server端puppet cert list看看是否有客户端的认证请求,如果有,就在服务器端执行puppet cert sign agent_name

  • 出现如下错误:

      Exception in thread "main" java.lang.IllegalStateException: Cannot initialize master with partial state; need all files or none.
      Found:
      /etc/puppetlabs/puppet/ssl/private_keys/puppet.novalocal.pem
      Missing:
      /etc/puppetlabs/puppet/ssl/certs/puppet.novalocal.pem
    

    这个问题一般是由于客户端比服务端先开启服务造成的
    rm -rf /etc/puppetlabs/puppet/ssl/*