linux系统管理
文章平均质量分 59
cleanfield
匍匐前进
展开
-
记一次logtail锁死/tmp目录
记录一次logtail导致的目录锁死经历原创 2024-02-02 12:26:26 · 348 阅读 · 0 评论 -
inotify学习
inotify的原理与使用原创 2024-01-30 19:46:20 · 683 阅读 · 0 评论 -
rsyslog学习
rsyslog的消息流是从输入模块->预处理模块->主队列->过滤模块->执行队列->输出模块。原创 2023-11-23 14:40:51 · 602 阅读 · 0 评论 -
实现脚本单例运行的两种方案
加注:在多进程或跨脚本场景中,简单地判断锁文件是否存在可能导致竞争条件。若多个进程或脚本实例在几乎相同的时间点检查并尝试创建锁文件,这样一来,就可能让多个实例同时获得锁并运行。由于此种情况下的检查和创建锁文件并不是原子性操作(无法保证在一个不可分割的操作中完成),因此可能导致竞争条件的发生。简单地判断锁文件是否存在是一种简单易懂的方法,但可能导致竞争条件、锁未释放等问题,不如。如果文件不存在,就创建一个锁文件,获得锁。综上,简单地判断锁文件是否存在的方案同样可以应用于跨进程和跨脚本场景,但相较于。原创 2023-11-21 19:13:34 · 154 阅读 · 0 评论 -
linux下sz命令不能传输超过4g文件的解决办法
通过分割与合并文件,解决sz超过4g无法传输的问题原创 2023-06-21 18:25:30 · 1656 阅读 · 0 评论 -
没有core的程序异常退出追查过程
对于进程异常退出而没有产出core文件,我们该如何定位问题原创 2022-09-21 16:11:23 · 1251 阅读 · 0 评论 -
python实现从excel导出csv最完整版本,openpyxl,pandas,xlrd全家桶
excel导出csv,实现了多种方式导出,同事还实现了多进程版本,效率更高原创 2022-08-25 20:42:25 · 1551 阅读 · 0 评论 -
python xlrd,pandas,openpyxl实现excel导出csv,支持xls,xlsm, xlsx
将excel导出为csv,跨平台可用原创 2022-08-21 23:38:49 · 995 阅读 · 0 评论 -
awk中匹配一个变量
awk中匹配一个变量的值,要特殊写法原创 2022-08-17 19:20:56 · 460 阅读 · 0 评论 -
crontab的特殊标签 reboot
这几天遇到一个问题,每个用户有一个守护进程,为了这个守护进程同时只运行一个,所以加了一个文件锁,然而机器要是重启的话,这个文件锁是没法删掉的,重启之后就导致守护进程无法启动了。一直在找一钟机制,能够在crontab脚本运行之前执行,不是类似rc.d,因为这个是针对root账号,要处理到其他账号的文件锁,就需要针对每一个账号的文件锁都删除一遍,今天发现了crontab的特殊标签,reboot,可以在每次重启后执行一次,触发时机是在crontab其他定时任务之前执行,完美契合我的需求。具体用法是这样的:原创 2022-05-12 14:23:09 · 2444 阅读 · 0 评论 -
ulimit -a的假象
ulimit -a并不一定显示的真实数据,我们一定要一探究竟,追其根源原创 2022-04-21 20:48:56 · 423 阅读 · 0 评论 -
警惕利用Linux预加载型恶意动态链接库的后门
一、动态链接库预加载型rootkit概述动态链接库预加载机制是系统提供给用户运行自定义动态链接库的一种方式,在可执行程序运行之前就会预先加载用户定义的动态链接库的一种技术,这种技术可以重写系统的库函数,只需要在预加载的链接库中重新定义相同名称的库函数,程序调用库函数时,重新定义的函数即会短路正常的库函数,这种技术可以用来重写系统中有漏洞的库函数,达到修复漏洞的目的,如get_host_byname导致ghost漏洞的这类函数。这种技术也可以被不怀好意的攻击者用来写rootkit,通过重写mkdir, m转载 2022-01-17 11:56:30 · 1945 阅读 · 0 评论 -
faketime实现游戏服务器时间定制
游戏开发中,服务器经常需要调整时间,比如测活动,要测完整流程需要频繁修改时间,如何实现多租户各自定制时间,本文会给出答案原创 2022-01-14 14:35:07 · 3922 阅读 · 3 评论 -
bash编程心得 时间比较
#!/bin/bashdate1=`date +%y%m%d%H`if [ "$date1" -gt "08022800" ]then echo "after"else echo "before"fi原创 2009-05-09 16:29:00 · 966 阅读 · 0 评论 -
通过脚本实现从日志文件中提取时间最近的几条记录
需求:得到玩家流失前最后的操作方案:1.db中得到创建时间与最后下线时间是同一天的玩家列表2.得到玩家所有的协议请求记录3.将协议请求记录反转4.提取前几条具体做法:1.db操作生成lost_user.txt(具体sql省略);2.grep "cmd" debug201311280000* | grep client | grep -v 2599 >原创 2013-12-20 17:40:17 · 1311 阅读 · 0 评论 -
awk中正则只能贪婪匹配
应用场景:将文本中每一行内原创 2014-10-30 09:55:34 · 3979 阅读 · 0 评论 -
awk中处理asc码
遇到问题:server打日志时而没有将uint8的统计字段转换为int,而是直接打出来变成了asc码的值(比如1变成了^A),导致运营脚本无法正常统计,短期无法更新server,只能将日志二次加工解决思路:将日志文件中的asc码值转换为对应的正常数值具体代码:proc.awk#!/bin/awk -fBEGIN { for (idx = 0; idx原创 2015-01-08 19:32:00 · 1491 阅读 · 0 评论 -
ubuntu下安装perf
sudo apt-get install linux-tools-commonubuntu下的相关介绍http://manpages.ubuntu.com/manpages/lucid/man1/perf.1.html具体使用见牛人贴:http://www.lenky.info/archives/2012/10/2007原创 2014-12-19 18:11:49 · 11625 阅读 · 0 评论 -
为svn添加hook脚本
为了维护svn的log,方便后续查找某个模块的svn提交操作,今天终于动手写了一次svn的hook脚本。虽说功能不复杂,但是经历还是有点波折。特此记录目标:输入的注释要遵照格式:[模块名]操作日志,其中模块名不少于4个字符(或2个汉字),操作日志不少于10个字符(或5个汉字)首先,网上了解到需要在svn的hook目录下编辑pre-commit.bat,而svn提供了简单的模原创 2016-02-26 18:08:33 · 4301 阅读 · 0 评论 -
记一则Linux病毒的处理
源地址:http://www.kaisir.com/2015/07/ji-yi-ze-linux-bing-du-di-chu-li.html今天某项目经理反馈学校的某台服务器不停的向外发包,且CPU持续100%,远程登录后查看发现有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串进程。删除文件也会重复生成,非常痛苦。查阅crond相关日志,发转载 2016-05-04 15:20:58 · 5257 阅读 · 0 评论 -
Linux下随机10字符病毒的清除
源地址:http://www.botwo.net/linux-sjszfbd.html病毒表现:网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首。杀死该进程后,会再随机产生一个新的进程。查找步骤:一、/proc/_pid/cmdline里面都转载 2016-05-04 16:44:35 · 4098 阅读 · 0 评论 -
探讨php中error_log函数输出内容的原子性问题
php的error_log真的可以输出任意日志而保证完整性吗?针对这个问题,深入探讨论证,你会发现很多认识上的误区原创 2015-08-27 18:16:43 · 1976 阅读 · 0 评论 -
关于O_APPEND模式write的原子性
原文地址:http://blog.csdn.net/dog250/article/details/29185821上上周的事情了,端午小长假将近,还是按往常一样,最后一天一定要搞一个“课题”,场面不大,一天就能搞定的东西,如果说系统学习vim或者Emacs之类的,那就算了...还好,问题呼之即来,那就是write系统调用是不是原子的,答案很显然,不是!但大师说带有APPEND标志的wr转载 2016-06-16 09:44:42 · 1165 阅读 · 0 评论 -
awk更新现有文件内容并输出到新文件中
修改兑换码对应的奖励awk -F',' '{ if(substr($1,0,3) == "AJ4"){$4="100 1019 1|1 2 20000|101 99 20"; print >> "/home/test/redeem_data_rlt/"FILENAME} }' 4[0,1,2,3]/t_whole_redeem_*.csv原创 2017-10-20 18:14:35 · 3771 阅读 · 0 评论 -
bat脚本中if子句的errorlevel,一个大坑
这几天在写svnhook,需要用到bat,这里只记录下吧:rem 检查tagsvnlook changed %REPOS% -t %TXN% | awk "{if(NR==1){str=$0}else{str=str\" \"$0}}END{print str}" | findstr "tags\/" > nulif %errorlevel% == 0 ( svnlook ...原创 2018-11-02 20:45:58 · 9192 阅读 · 3 评论 -
通过php修改系统时间
步骤一:创建修改时间脚本root@xxxxxx:/var/www/userinfo# vim chtime#!/bin/bashdate -s "$1"步骤二:给运行该脚本添加sudo权限root@xxxxxx:/var/www/userinfo# visudo## This file MUST be edited with the 'visudo' comma原创 2013-12-08 22:54:25 · 5193 阅读 · 0 评论 -
追踪mysql阻塞的问题
这两天总是会出现fcgi程序挂住,不能继续处理的问题,通过日志发现是在mysql的execute接口出问题,strace进程看到 strace -p 3497Process 3497 attached - interrupt to quitread(5, 而又通过lsof -p pidxxx 6155 xxx 5u IPv4 1631原创 2012-02-16 19:00:13 · 4888 阅读 · 0 评论 -
fcgi作为客户端需要注意的几点
fcgi作为中间层,需要与后端server通信进行数据处理,这里需要注意一下几点:1.要做好超时处理,fcgi跟cgi不同,往往只有几个固定数量的进程,与server类似,因为如果一个fcgi进程挂住会导致整个fcgi逻辑层的处理能力下降N分之一(N为fcgi进程数)。这里的原创 2011-08-18 23:42:52 · 2075 阅读 · 0 评论 -
tm与time_t转换函数
bool IsSameDay(time_t time1, time_t time2){struct tm * ptimeDetail;struct tm timeDetail1;struct tm timeDetail2;ptimeDetail = localtime ( &time1 ); //函数返回本地日历时间memcpy(&timeDetail1, ptimeDetail, sizeof(tm));ptimeDetail = localtime ( &time2 ); memcpy(&timeDe原创 2011-03-07 18:01:00 · 5755 阅读 · 0 评论 -
vmware下linux通过host-only方式与windows共享网络
<br />1。设置vmware为host-only2. 设置本地连接可以共享,对vmnet1共享3. 这时vmnet1的地址就会变成192.168.X.1,4. 设置linux下host为192.168.X.2,网关为192.168.X.1 测试下原创 2011-03-05 00:49:00 · 656 阅读 · 0 评论 -
linux下所有用到dlopen类似函数的程序编译
<br /><br />编译时候要加入 -ldl (指定dl库)<br />例如<br />gcc test.c -o test -ldl原创 2011-03-05 00:25:00 · 1094 阅读 · 0 评论 -
删除空闲共享内存的脚本
<br />ipcs |awk '{if($6==0) printf "ipcrm shm %d/n",$2}' |sh; ipcs<br /><br />或者<br /><br />ipcs |awk '{if($6==0) printf "ipcrm shm "$2}' |sh; ipcs<br /><br />或者<br /><br />ipcs;ipcs -m | grep bernie | awk '{if($6==0) cmd="ipcrm shm "$2" >/dev/null";原创 2011-03-05 00:21:00 · 904 阅读 · 0 评论 -
localtime函数注意事项
<br />经过一个小实验得到结论,localtime函数实现的时候采用的是一块固定buffer,因此如果多次调用此函数,结果值会是最后一次的结果值,如果需要保存每次运行函数的准确结果,需要在localtime函数调用后直接将buffer内容拷贝出来,否则将被后续调用覆盖。 bool IsSameDay(time_t time1, time_t time2)<br /> {<br /> struct tm * ptimeDetail;<br /> struct tm timeDetail1;<br原创 2011-03-04 23:37:00 · 1246 阅读 · 0 评论 -
linux下查看监听端口对应的进程
<br />linux下查看监听端口对应的进程 netstat -anp|grep 1211原创 2011-03-04 23:31:00 · 1142 阅读 · 0 评论 -
linux脚本中的时间处理
#!/bin/bashsuffix=$(date +%Y%m%d%H%M%S -d "3 days ago")echo $suffixmonth=$(date +%m)day=$(date +%d)year=$(date +%Y)hour=$(date +%H)minute=$(date +%M)second=$(date +%S)curdate=$yea原创 2009-05-09 15:48:00 · 1680 阅读 · 0 评论 -
ls 目录 下用高亮显示
alias ls="ls --color"原创 2009-05-09 16:29:00 · 1221 阅读 · 0 评论 -
linux下某个用户无法登陆的问题
原因可能是此用户的主目录因为其他用户的某些操作而被破坏,或者是导致此用户没有访问此目录的权利。解决办法:1.在root用户下建立此用户的主目录2.将此目录设置为该用户全权限原创 2009-05-09 16:26:00 · 3562 阅读 · 0 评论 -
vmware下linux通过host-only方式与windows共享网络
1。设置vmware为host-only2. 设置本地连接可以共享,对vmnet1共享3. 这时vmnet1的地址就会变成192.168.X.1,4. 设置linux下host为192.168.X.2,网关为192.168.X.1原创 2009-05-09 15:27:00 · 526 阅读 · 0 评论 -
makefile 学习
1. $? 表示依赖文件中被修改过的文件2. objects = $(wildcar *.o) 这个表示统配所有.o文件 ; 而 objects = *.o 表示字符串".o"3. objects := $(patsubst %.c,%.o,$(wildcard *.c)) 找目录下所有.c文件对应的.o文件作为目标文件4. 定义变量“VPATH”时,使用空原创 2009-05-09 16:28:00 · 641 阅读 · 0 评论 -
实现spawn-fcgi的守护监控功能
本spawn-fcgi在标准版本基础上实现了对子进程的守护和监控,当有子进程挂掉的时候会重新拉一个子进程,这样就解决了原有spawn-fcgi的一个弊端:即spawn-fcgi在启动了子进程后就直接退出了,这时候如果子进程都挂掉那么就无法提供服务, 作者berniewu原创 2011-05-10 18:11:00 · 13019 阅读 · 5 评论