
Linux
photon_wa
这个作者很懒,什么都没留下…
展开
-
Python统计FTP所有目录下文件大小
Python列出FTP当前目录中的所有文件和子目录,并统计大小。原创 2024-02-21 10:59:01 · 667 阅读 · 0 评论 -
CentOS7挂载NAS共享存储,重启有效
【代码】CentOS7挂载NAS共享存储,重启有效。原创 2024-02-20 09:24:37 · 1348 阅读 · 0 评论 -
boost posix_time时区问题
boost::posix_time::microsec_clock::universal_time()获取格林威治时间。使用boost::posix_time::microsec_clock::local_time()获取本地时间。boost::aiso::timer的expries_at()返回的格林威治时间。有时候获取到格林威治时间时间,想输出为本地时间,原创 2023-04-14 14:36:53 · 411 阅读 · 0 评论 -
TC限速实践
确认好默认队列,因为一旦限速规则和默认队列重复,现在的机器都是远程登录的,如果限速过大,将直接导致你无法再进行远程操作,只能重启机器了……链接:https://www.jianshu.com/p/4477c68c9ec4。看完了这些,起初我只是想针对某个ip进行一下限速,这个过程中有几个小坑。商业转载请联系作者获得授权,非商业转载请注明出处。那么我要针对一个ip限速,可以执行下面这个脚本。tc暂时只能在实体机上执行。tc命令需要root来执行。原创 2023-03-10 13:47:47 · 543 阅读 · 0 评论 -
ulimit设置coredump文件大小
在linux系统中,如果coredump文件大小设为0,即使程序发生了core dump(segment fault)也没有core文件产生。原创 2022-11-15 18:21:25 · 2262 阅读 · 0 评论 -
linux raw socket 原始套接字
TCP socket,UDP socket只能处理传输层数据,而原始套接字raw socket绕过传输层直接获取网络链路层的数据包。我们平时用的tcpdump, libpcap都是基于raw socket实现的。一般使用方法如下: // raw socket int rawsock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_IP)); if (rawsock < 0) { perror("SOCK_RAW err原创 2022-05-12 16:32:09 · 498 阅读 · 0 评论 -
只有同时打开tcpdump,libpcap应用程序才能抓到所有的包
只有同时打开tcpdump,libpcap应用程序才能抓到所有的包,否则流量很小,怎么解决?答案:打开网卡混杂模式原创 2022-02-23 14:38:59 · 1625 阅读 · 0 评论 -
linux下使用libpcap库
Libpcap是一个开源C库,它提供了一个API,用于直接从Unix衍生操作系统的数据链路层捕获数据包。它被流行的数据包捕获应用程序(如tcpdump和snort)使用,使它们能够在几乎任何风格的Unix上运行。下面是一个基于libpcap的简单数据包嗅探器应用程序的示例, 该示例通过libpcap库接收数据链路层frame数据包,重组为TCP数据流,或UDP数据包,带有TCP重传、乱序缓存等功能。原创 2022-01-28 21:17:04 · 662 阅读 · 0 评论 -
tcpdump 编写边打印
sudo tcpdump -i enp2s0 -U -w - | tee test.pcap | tcpdump -nnvv -r -https://serverfault.com/questions/960405/how-can-i-see-packets-while-capturing-with-tcpdumphttps://stackoverflow.com/questions/25603831/how-can-i-have-tcpdump-write-to-file-and-standard-o原创 2021-11-12 11:30:14 · 6542 阅读 · 0 评论 -
从pcap文件中读数据并组播
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <原创 2021-09-03 09:49:22 · 381 阅读 · 0 评论 -
sed+awk+Rscript
cat ... | sed "s,.*latency:\([0-9]*\) num:\([0-9]\).*,\1 \2,g" | awk '{tm=$1; num=$2; tmSum=tmSum+tm; if(num>0) {print tmSum/num; tmSum=0;} }' | Rscript -e 'marr=as.numeric (readLines ("stdin")) ; summary(marr); cat("length:"); length(marr); cat("var-原创 2021-04-02 17:41:12 · 114 阅读 · 0 评论 -
TCP标志位 FIN和RST的区别
断开链接FIN 有序释放RST 终止释放原创 2021-03-08 20:20:13 · 4848 阅读 · 1 评论 -
C++多线程与异常
每个线程有自己的栈空间, 不同线程之间的异常不能传递, 一般每个线程handle自己的异常, 如果线程发生异常没有catch, 会导致线程终止,进而进程终止, 例如。#include <thread>#include <chrono>#include <stdexcept>#include <iostream>void threadRun(){ int num = 5; while( num-- ) { std::原创 2020-12-15 20:01:46 · 2949 阅读 · 0 评论 -
C++多线程与信号signal
https://www.xspdf.com/resolution/55857746.htmltest66-sigaction.cpp原创 2020-12-17 20:03:52 · 7724 阅读 · 0 评论 -
删除大文件的前/后几行
sed删除文件指定行, 2~5行sed -i '2,5d' file.txt删除大文件的前几行, 比sed快$ tail -n +3 old_file > new_file $ mv new_file old_file 删除大文件的最后几行,比sed快truncate -s -"$(tail -n1 file | wc -c)" file原创 2020-08-24 20:23:38 · 1783 阅读 · 0 评论 -
C++跨平台开发Linux&Windows
C++ linux/MacOS环境开发和windows环境开发感觉是两个世界,公司招聘C++程序员的时候都会强调是哪一个平台。当然C++开发的区分不止于平台,还有前端后端,不同业务的区别。本文以有限的水平记录一下跨平台开发一点小经验。在Linux环境中我们常用gcc/g++编译器,大的项目会用到makefile, scons等编译工具, linux有其独有的库,如sys/socket., unistd.h等。在Windows环境开发一般就是用Visual Studio编译。C++是编译型语言,不像Ja原创 2020-08-12 20:13:50 · 1531 阅读 · 0 评论 -
libpcap 网络数据包捕获, Raw Socket
https://blog.youkuaiyun.com/htttw/article/details/7521053https://www.cnblogs.com/coder2012/archive/2013/04/13/3012390.html原创 2020-07-23 19:18:15 · 502 阅读 · 0 评论 -
sed 同一行中一个模式匹配多次,使用awk判断判断是否连续
假设我们有这样一个文件$ cat txt.txtclass:A id:1 name:aa id:2 name:bb id:3 name:cc id:4 name:ddclass:B id:5 name:ab id:6 name:bc id:7 name:cd id:8 name:de id:9 name:efcalss:C id:10 name:jack id:11 name:rose每一行为一个班级A, B, C; 每个班有若干名同学(id, name) , 如何判断同学的id是连续递增原创 2020-05-18 18:41:32 · 1701 阅读 · 0 评论 -
GCC链接库
GCC 静态链接库的顺序很重要GCC 有多个链接库时,可以指定特定链接库原创 2020-04-28 10:17:26 · 654 阅读 · 0 评论 -
std::locale设置不当导致异常std::bad_cast
std::locale 区域一般和变量类型,输出方式有关查看和修改locale可以通过如下方式:std::locale loc(std::locale(), new std::ctype<char>);std::locale::global( std::locale("") );std::cout << "The default locale is " ...原创 2020-04-16 20:02:11 · 1302 阅读 · 0 评论 -
SO_TIMESTAMP/SO_TIMESTAMPNS 获取硬件时间
用SO_TIMESTAMP/SO_TIMESTAMPNS 可以获取硬件时间, 前提是内核和网卡支持该功能能http://www.cs.fsu.edu/~baker/devices/lxr/source/2.6.31.13/linux/Documentation/networking/timestamping/timestamping.chttps://www.kernel.org/doc/...原创 2020-04-16 19:59:10 · 3754 阅读 · 0 评论 -
LD_PRELOAD + dlsym
https://www.cnblogs.com/saolv/p/9761371.htmlhttps://www.jianshu.com/p/72cc08405a5a原创 2020-03-13 18:31:20 · 1251 阅读 · 0 评论 -
Linux 绑核 cpupin 相关
https://blog.youkuaiyun.com/photon222/article/details/88954356http://man7.org/linux/man-pages/man2/sched_setaffinity.2.htmlhttp://man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.htmlhttps://www...原创 2020-03-11 18:24:19 · 890 阅读 · 0 评论 -
Ubuntu14, 锁屏后密码输入框消失,无法输入密码解锁
我的系统版本是:4.4.0-141-generic #167~14.04.1-Ubuntu SMP这种情况不时发生,大多数是系统忙的时候发生。查了一下,确实是Ubuntu的一个bug:https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1311316可通过以下方式解决:1. Ctrl + Alt + F1 进入命令号模式2...原创 2020-03-10 18:17:11 · 1029 阅读 · 0 评论 -
一个导致TCP数据乱序的问题
众所周知,TCP是面向连接的可靠的流数据传输方式, 有应答确认机制和重传机制,一般不会丢失数据,或数据顺序颠倒。【但是考虑下面这种情况:】Client端socket的send buffer满了(可能是因为没有及时收到应答,也可能是因为数据量太大,buffer size太小), 这时候send fail, Client端因此断开连接,并且我们设计了重连的机制, Client端马上新建一个sock...原创 2019-11-22 22:00:01 · 5781 阅读 · 3 评论 -
Linux流量监控工具:iftop
iftop 显示带宽使用情况At the bottom of the display, various totals are shown, including peak traffic over the last 40s, total traffic transferred (after filtering), and total transfer rates averaged over 2s,...原创 2019-11-06 20:32:07 · 140 阅读 · 0 评论 -
一个nohup导致程序崩溃的Bug
程序使用nohup启动崩溃,不使用nohup启动正常。先说原因:程序中socket()返回文件描述符fd=0; fd=0表示标准输入stdin; nohup把标准输入重定向到/dev/null; epoll_ctl()或其他使用该文件描述符时崩溃。1. 文件描述符A file descriptor is a number that uniquely identifies an open f...原创 2019-11-06 10:38:01 · 1550 阅读 · 0 评论 -
Linux软件安装管理之——dpkg与apt-*详解
https://www.jianshu.com/p/6432015c52a6转载 2019-10-24 17:05:05 · 190 阅读 · 0 评论 -
Ubuntu上搭建一个FTP Server
在Ubuntu上搭建一个FTP Server首先是安装VsFTPD$ sudo apt-get update$ sudo apt-get install vsftpd修改vsftpd配置文件/etc/vsftpd.confwrite_enable=YES #用户只能读,不能写anonymous_enable=No #禁止匿名用户chroot_local_user=YES #...原创 2019-09-26 20:01:48 · 265 阅读 · 0 评论 -
Socker发送/接收缓冲区 及 Linux的TCP内核参数
TCP是面向连接的协议,有重传机制,能保证数据有序。发送数据时,会把发出去但未收到确认的消息放进send buffer里,根据【重传机制】,需要的时候会从buffer里取对应的消息重发。而接收数据时,因为消息不一定是有序到达的,会把先到达的大seq的消息放到recv buffer里,等前面的seq连续都到达后在按顺序送到应用层,并发送应答给对方。如果send buffer满了,调用socke...原创 2019-09-18 21:21:32 · 599 阅读 · 0 评论 -
Mercurial、hg使用笔记
Mercurial是一种免费的分布式源代码管理工具。它为您提供了在使用直观界面的同时有效处理任何规模项目的能力。它很容易使用,也很难断开,这使得它非常适合任何使用版本化文件的人。https://blog.youkuaiyun.com/chinabestchina/article/details/76401588https://blog.youkuaiyun.com/chinabestchina/article/det...原创 2019-05-15 14:46:19 · 629 阅读 · 0 评论 -
rsync与scp区别以及rsync算法原理
简单地说,rsync只传增量,而syc传全量。 rsync算法保证。https://blog.youkuaiyun.com/wishfly/article/details/7575152https://blog.youkuaiyun.com/lixwjava/article/details/50421431原创 2019-05-15 14:19:52 · 653 阅读 · 1 评论 -
SSH隧道转发, socat 端口转发
SSH端口转发SSH有三种的转发方式:本地转发、远程转发、动态转发,本文使用本地转发的方式。命令格式:ssh -L :: ssh -L -p 0.0.0.0::<127.0.0.0>: 第一种为连接服务端的默认22SSH端口,第二种为指定端口。ssh 参数:-C 压缩ssh传输的数据-f 把ssh放在后台执行-N 不执行远端命令-n 重定向stdin,阻止从st...原创 2019-04-09 19:30:44 · 896 阅读 · 0 评论 -
gcc 编译 gcc warning 'variable tracking size limit exceeded' 原因及解决办法
gcc 编译报错:note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without原因: gcc (g++也有可能) 编译时调优,使用了参数“-fvar-tracking-assignments”。大神的解释如下:According to official docume...原创 2019-04-11 19:04:55 · 6110 阅读 · 0 评论 -
Ubuntu 14 update kernel 升级内核
Ubuntu升级kernel下载安装包https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D安装sudo dpkg -i linux-headers-3.19.0-.deb linux-image-3.19.0-.deb [for example]修改grup选项,并更新grubsudo vim /etc/default/gru...原创 2019-04-11 18:46:42 · 520 阅读 · 0 评论 -
Ubuntu修改/proc/cmdline
How to edit /proc/cmdline/proc/cmdline是系统文件,不能直接修改,可通过如下方式修改修改/etc/default/grubsudo vim /etc/default/grub and add the two lines below in the file:GRUB_CMDLINE_LINUX_DEFAULT=‘console=tty0 console...原创 2019-04-01 18:37:05 · 7991 阅读 · 1 评论