使用linux crontab定时清理n天前的日志文件
最近有个需求,需要在linux机器上定时执行清理n天前的日志文件。其实我开始做了个更有意思的清理工具,根据alertmanager做webhook,然后在每个Linux机器上开启一个agent,收到请求再执行清理。不过使用crontab也是一个非常有用的工具。
crontab是Linux的一个守护进程,定时执行的工具。详细的内容可以使用man crontab查看。废话不多说,直接来看怎么使用它。只有用起来,才是属于自己的。
物来顺应,未来不迎,当时不杂,既过不恋
1: linux命令行替换文本中的字符串。sed -i "s/100.69.224.18:10099/100.69.224.27:9999/g" /file.xml
2: rancher平台的相关监控。
1 | mysql: |
3: sort 根据低三列排序
docker stats -a –no-stream |awk ‘{print $1,$8,$3,$4}’|sort -k 2,4n
sort -k a,bn
a为第几列,b为几个字符,n为数字比较,1234,1222,从第一个字符开始,到第四个字符都会比较
4: 给基础镜像安装常用工具:ping,curl,wget,netstat。一般源里面就已经包含了,ping的源为:apt install inetutils-ping或者 apt install net-tools
5:某次给rancher平台扩容,直接将主机加上之后,将原来的应用直接*2启动,平台爆掉了。server不到。
经常连接github上传东西,经常push的时候需要输入用户名和密码。下面是使用ssh-key免密的方式访问自己的github仓库。
首先在本地生成ssh-key:
进入到~/,用户根目录,查看.ssh文件夹是否有相关的公钥私钥
如果没有新生成:
1 | ssh-keygen -t rsa -C "xxx@yy.com" |
之后再打开~/.ssh/id_rsa.pub拿到公钥内容,复制所有内容;
在github找到设置,add-sshkey,新建一个ssh-key。将内容粘贴进去。
之后再本地的git仓库下使用:
ssh -T git@github.com
进行验证。
Anbible 是干嘛的?对于一个非专业运维人士(我)来说,它就是我批量操作服务器的一个神器。试想一个场景:公司内部DNS还未搭建好,业务系统使用了域名做请求,这个时候需要你将域名制定到某台机器上,你这个时候就只能修改hosts文件了。嗯,如果是一两台服务器就算了,大不了手动ssh上去改一改,但是如果是10台了?10台不够,100台了?这个时候怎么办?你可能说我召集了一帮兄弟,大家一人改几个。OK,好不容易你改完了,这个时候业务跟你说,嗯,那台服务器挂了,不稳定,暂时换到另一台服务器上另一个IP地址。兄弟,听说醉经淘宝刀打折,买一把吧。哈哈
但是如果这个时候我们使用ansible,这个时候你就可以早点干完,早点回家陪老婆孩子了。接下来我们看看怎么使用ansible,请注意,我只是说怎么使用,是的,怎么使用,没有任何理论,不会讲解任何深的东西,只是用而已。
最近好久都没有写博客了。其实最近做的事情都比较单调,就是迁移环境,不过再迁移环境中,我还是收获了很多我缺少的。单从非技术方面,我缺少勉才的那股韧劲(问题不会过夜),缺少华哥那种细致(仔细的做过一遍,还会仔细的检查一遍,不是那种大致检查,是那种一条一条的比对),当然我也看到有些同事的缺点也是我的缺点,有则改之。
在搬迁中,华哥是我们部的总负责人,他对所有的事情都会有把控,搞不定的事情都会找他。而且他总能找到合适的方法解决。最重要的是,我犯错他却从来没有指责过,只是说怎样弥补,然后跟我们说正确的方法,而后我觉得挺对不住他的。总会想着把事情再做好点。勉才是小组的执行人,执行人真的超级强,问题基本没过夜,总是在12点的时候或者第二天一早问他,他就说问题解决了。。简直了。
这次搬迁我们是轮值的,也就是一开始将所有任务分配好,然后各自自己实验一次,写下步骤,下一轮再给另一个人按照写的步骤实行一次,这样来回3轮。最后基本上,步骤文档就没啥问题了。任何人都可以按照文档完整的搭出系统。
最近公司机房搬迁,大大小小演练,解决问题搞了差不多一个月。在以前的公司其实从来没有遇到过应用搬迁的事情。那个时候还是个开发写代码的。可能有搬迁也不需要我来帮忙,但是这次公司搬迁,从前到后。基本上全程参与。只有一个感受,那就是真的是严谨的要命。
搬迁之前,我们内部就演练了3次,之后申请搬迁后的资源又演练一次,每一次都做了详尽的记录,细微到每一条命令是怎么敲,可以说,拿到文档,就算你啥也不会,你也可以完成。为啥这么细微了,因为有一部分是我的写的文档,写了之后,在下一轮测试演练,拿给别的同事做我的部分。发现他尽然无法完成。这个时候发现,原来我认为的简单,在别人那里是那么复杂。
平常有很多时候可能会通过改hosts文件的方式来访问自定义的某个域名,但仅限于单机而已。如果能用dns解析的方式来统一管理那将会很方便。
实验基于centos7实践。切换到root用户(以下所有操作都在root下执行):
我们使用dns软件 bind9 系列安装包。
yum -y install bind*
安装后的部分日志:
1 | Installed: |
Excel将两列合并成一列:=CONCATENATE()
linux统计文件,原文链接:
1 | 统计某文件夹下文件的个数 |
1 | 去除重复行 |
什么是linux vip:https://www.zhihu.com/question/67682565,https://www.novell.com/documentation/bcc/bcc11_admin_nw/data/bq7ucwl.html。
Linux scp命令,上传或下载文件
复制本地文件到远程服务器:scp local_file remote_username@remote_ip:remote_folder;
例如:scp /home/chen/file.md chen@192.168.1.1:/home/chen/test.md
复制远程文件到本地:scp remote_username@remote_ip:remote_folder local_file
例如:scp chen@192.168.1.1:/home/chen/test.md /home/chen/file.md
chown username:usergroup /path/to/file
chmod a+x /path/to/file
chmod u+w /path/to/file
1 | ip addr |
1 | 解压文件:tar -zvxf xxx.tar.gz |
1 |
|
docker rm -v $(docker ps -aq -f status=exited)
docker images |grep none |awk '{print $3}'|xargs -i docker rmi {}
D:\Users\chenzj001.IntelliJIdea2018.1 删除这个文件就好了,全部重置。也可以只删除config。
windows找到用户–>.i
也就是在用户目录下,删除.IntelliJIdea2018
1 | netstat -aon|findstr "端口号" |
shell 脚本在linux上可以说是非常有用的一个工具,它就是linux命令的一个集合,所以写好shell脚本的关键一部分就是对linux命令比较熟悉。
本博客是在图书馆借阅shell相关脚本学习书记做的一个简单笔记。
一般我们在linux中创建的shell脚本都是以.sh为结尾的,这其实不是说一定要用sh结尾才行,只是大家约定习俗的一个习惯而已。
在shell文件的第一行,通常是#!/bin/bash,表示该脚本使用bash语法。#是shell脚本中的注释。通常自定义的脚本我通常习惯放在/usr/local/bin目录下,关于bin,sbin,/usr/bin,/usr/local/bin等的区别
现在我们创建第一个脚本first.sh:
1 | #!/bin/bash |