博客 2015-03-06

简介:

logrotate 是一个日志切分工具。一般要结合cron一起工作。

logstash 是日志集中管理工具,但输出到文件时不能自动按大小切分(目前只能按日期)

系统实例:

比如系统的messege/cron/secure 都是cron + logrotate(一周跑一次)

[root@mreald.com logstash_conf]# ls /var/log/mess* -1
/var/log/messages
/var/log/messages-20150208
/var/log/messages-20150215
/var/log/messages-20150222
/var/log/messages-20150301

1. 配置文件

[root@mreald.com  logstash_conf]# tree -finh /etc/logrotate*
/etc/logrotate.conf 
/etc/logrotate.d
[ 135]  /etc/logrotate.d/iptraf
[ 115]  /etc/logrotate.d/samba
[ 210]  /etc/logrotate.d/syslog
........................

2. 默认配置:

[root@mreald.com  logstash_conf]# cat /etc/logrotate.conf |grep -v \#
weekly
rotate 4
create
dateext
include /etc/logrotate.d
/var/log/wtmp {
    monthly
    create 0664 root utmp
minsize 1M
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

3. 自定义配置:

在 /etc/logrotate.d/下面 。比如:/etc/logrotate.d/syslog

微录 2015-03-05

我对全栈工程师的定义:

1.知识面广泛,有很强的学习能力,快速接受新知识,解决当前问题

2.什么都懂点,但能够找到相关方面的专业人士,实为伯乐

3.不再是一个工程师,而是一个有能力的组织者与创业者


一个真正的Full Stack Engineer,他从生活中发现问题,洞察需求,他设计解决方案,并开发出初始版本的产品。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不追求一个人完成所有工作,如果有人可以比他在某方面做得更出色,便会十分热情的邀请他们加入。


最终他的职位也许不再是Engineer,他不再设计UI,不再写代码... 他的工作不再是设计/开发一款应用/产品,因为他有更大更重要的任务要做——design and building a team or a company which builds great products。 


博客 2015-03-03


index(索引)         相当关系型数据库一张表

type   (类型 )           索引的类型

mapping (映射)       相当于表结构和关系 

document(文档)  表一行

字段                         行的列

 

cluster/node               node 名相同,会尝试成为一个集群

shard 分片               (原因:1.单个容量限制 2.计算能力)

river                          (代表es的一个数据源,通过读取river中的数据并把它索引到es中)

gateway                   (代表es索引快照的存储方式  有本地文件系统(默认),共享的fs,分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务)

discovery.zen           (代表es的自动发现节点机制,es是一个基于p2p的系统)

Transport                  代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互



ES  REST API CRUD

-XPUT  -XPOST  原理不一样(前者是增加,后者是改变)

-XDELETE

curl -XPOST http://localhost:9200/_cluster/nodes/_shutdown

curl -XPOST http://localhost:9200/_cluster/nodes/

curl -XPOST http://localhost:9200/_cluster/nodes/Blljdsfjiwjefihsidfhh/_shutdown



博客 2015-03-02


Sort

awk -F'|' '{print $2":"$3}'  aaaa |sort -t ':'  -k2rn     (-t分隔符,-k 哪列 -n按数值大小排列)
sort -n -r -u file   ( num reserve unique )
sort -n -t ‘ ‘ -k 2 -k 3rn facebook.txt  (先k2 再k3)
sort -t ‘ ‘ -k 1.2 facebook.txt (从第一列第二个字母‘向后。。。’排序)
sort -t ‘ ‘ -k 1.2,1.2 -k 3,3nr facebook.txt(只对第二个字母排序,。。)
  du -hsx  /path/* | sort -rh | head -10  (文件系统最大的前10个文件)


Uniq

博客 2015-03-02

Ls

ls -rthl        (时间反排序)
ls -lrSh         (按大小反排序)
ls -ld  dir1   (只列出dir1的属性,而非内容)


Rm

touch -- -test 
rm -f -- -test
or
 ls -i 
 find / -inum inum_value  -exec rm -f {} \;


Rpm

rpm -qa    |grep ls         (查看ls 包有没安装)
rpm -qf `which tree`    (查看tree 命令属于哪个包)
rpm -ql firefox                (查看 Firfox 安装目录)                         
rpm -ivh   --aid tar.rpm  (安装时解决包的依赖)


Cp

连目录拷隐藏文件可以拷贝的,比如tmp里如有个".test",
$ cp -av tmp/* /destination/path
".test"拷不过去,但
$ cp -av tmp /destination/path
便可以。


Shutdown

shutdown -h now                    立即关机 
shutdown -h -t 1800 (3m)      3m后关机
shutdown -h 12:30                 12:30关机


Diff

博客 2015-03-02

Find

find /usr /home /tmp -iname "*.jar"   (1.多个目录 2.不区分大小写)
find /usr/bin -type l -name "z*" -ls  (1.类型 2.执行操作,-ls同 -exec ls -l {} \; 还有-delete)
find / -name "*.txt" -mount            只在本文件系统查找(-mount or -xdev )
find . -name "flick*.png" |xargs tar czf flick.rar
find ~ -name ‘*.log’ -print0 | xargs -0 rm -f    太长的分段(-print0 与 -0 匹配,以NULL代替回车换行)
find . -type f -atime +10 -print0 | xargs -0 -l1 -t rm -f   (-l1 表示 一次处理一行,-t表示看到)


Grep

grep -c/-o/-n/-i/-l/-w/-v/-h    count/only-match/num/ignore/list-name/word/invert-match /不显示文件名
 grep  -B/A/C  n (before/after/context)显示匹配行周围行 (posix 未说明)

egrep --color 'cat|dog' test       cat or dog
grep -E --color 'cat|dog' test       (同上一行)
grep -l -e 'string\.h' -e 'stdlib\.h' /usr/include/*.h
#查看日志的错误信息
grep -irwE  'error|failed|failure' /var/log |less

echo "--shit"|grep -- --shit
echo '--shit' | grep -e '--shit'

Rsync

博客 2015-03-01

:set list                             显示不可见字符

 

 :g/^$/d                            删除所有空行

 

   *(#)                                当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词.

   

:%s;^\s*;;  o :%s;^\s\+;;   删除行首多个空格


:%s/pattern/&/g               查看文件中某关键字总数


>>                                   调整缩进  向右缩进一格,<<向左缩进一格。


`.                                      跳到上次修改的点('. 是行)


ggdG                            清空文件


微录 2015-03-01

[摘录]

 尽管如此,对于真正有兴趣创业的人,我从来不会泼冷水——而且我宁愿他们来到硅谷,而不是回到华尔街。在创业过程中,你会加速学习,收获深厚的友谊和团队精神,你至少能积累一些了不起的经历。

    如果你真的希望创业,而不是单纯为了迅速被收购,你可以做以下尝试: 在某件事上做到极好。成为一名伟大的工程师、设计师、产品经理、营销专家、销售代表或所谓的增长黑客(Growth hacker)。如果大多数初创公司都需要的工作,你做不到出类拔萃的话,不论是创业还是加入一家出色的公司都很难。 深入研究一个行业。许多最好的公司最初都掌握了某个特定领域的专有知识,如广告技术、保险、供应链管理、信息安全等。 加入一家出色的初创公司。如果你还不知道自己在哪方面拥有专项知识或激情,那就追随一位已经确立自身专长的公司创始人。尽早加入团队,做出尽可能多的贡献,不断学习,等你接触到更多的人和想法的时候,你未来或许便能创立自己的公司。   

祝你好运!

博客 2015-01-28

写了一篇  [积累] CSS 点滴学习 ,效果不错,再来一篇JS相关的:

1.简单的改 none-->block ,比如文章下面的发表评论按钮

CSS:
<a href="javascript:void(0)" onclick="duoshuo_comment()" class="me-button"> 发表评论</a>
JS:
function duoshuo_comment(){
         if(document.getElementById("ds-thread").style.display=="block"){ 
    document.getElementById("ds-thread").style.display="none"; 
   } 
else{ 
    document.getElementById("ds-thread").style.display="block";
    }
}


博客 2015-01-26

            Drush是一款以命令行方式和Unix脚本界面管理Drupal的软件。Drush使有许多非常有用的命令来处理Drupal维护工作,这些命令主要用于与Drupal的交互,例如与模块、主题、资料等方面的交互。类似地,它也可以运行update.php(用于升级或更新Drupal核心的脚本),使用SQL查询或者数据库迁移,还可以运行cron、清除缓存等一些杂项功能......

1.快速安装

wget  http://ftp.drupal.org/files/projects/drush-7.x-5.8.tar.gz 
tar xzf drush*.tar.gz
mv drush   /usr/local/lib/
chmod u+x /usr/local/lib/drush
ln -s /usr/local/lib/drush/drush /usr/bin/drush

然后到Drupal安装的目录下 执行: drush help 试试 ~

i-- 5/9 i++