本文配置本地yum源是把RedHat 7的系统盘内容复制到服务器硬盘的目录/RH7ISO中,然后配置yum指向该目录。首先挂载光驱到/mnt目录 :
在Linux 内核编程中,会经常见到一个宏函数container_of(ptr,type,member)。已知结构体type的成员member的地址ptr,求结结构体type的起始地址。
1 ifconfig 2 vi /etc/sysconfig/network-scripts/ifcfg-eth0 3 vi 4 vi /etc/udev/rules.d/70-persistent-net.rules 5 reboot 6 ifconfig 7 vi /etc/sysconfig/network-scripts/ifcfg-eth0 8 reboot 9 ifconfig 10 serv
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。 1、线程创建 在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这个进程中执行线程函数。 在Linux中,通过函数pthread_create()函数实现线程的创建: int pthread_create(pthread_t *thread, const
Linux平台 Oracle 18c RAC安装指导: Part1:Linux平台 Oracle 18c RAC安装Part1:准备工作 Part2:Linux平台 Oracle 18c RAC安装Part2:GI配置 Part3:Linux平台 Oracle 18c RAC安装Part3:DB配置
很多安装软件会存储在USB硬盘里面,在Windows系统中,则意味着,该USB硬盘驱动必须使用NTFS格式,因为FAT32格式的最大文件大小是4GB。然而,这里又会碰到新问题,因为在RHEL5中,默认不支持NTFS格式,换一句话说,就不能挂载文件格式为NTFS的USB硬盘。不过这里有个权益之计(work around),被称作'ntfs-3g', 要使其生效,必须安装下面RPM包。
Intelspy是一款功能强大的自动化网络侦察扫描工具,它能够执行自动化的网络侦察扫描任务,并收集网络情报信息。
这里深度理解一下在Linux下网络包的接收过程,为了简单起见,我们用udp来举例,如下:
在前一篇文章《Linux内核跟踪:ftrace hook入门手册(上)》中,我们对部分ftrace hook经典方案中的实现细节进行了优化。本文会深入说明这些优化的原理和目的。
Intel® Processor Trace (Intel® PT) 是在i5/i7 5000以上型号上加入的功能,由于它是硬件级的特性,相比Qemu或Boch,在性能上和代码工作量会占有一定优势。在Linux上可以通过perf来使用PT,可以先简单看是否支持PT:
PTFuzzer是基于AFL框架实现的一款开源fuzz工具,它采用了Intel Processor Trace硬件部件来收集程序执行的路径信息,改进了原来AFL通过编译插桩方式获取程序执行路径信息的方法。和AFL相比,硬件收集的路径信息更加丰富,同时可以直接对目标程序进行fuzz,无需源码支持。
背景 最近正在拓展 MySQL 数据库知识 发现很多提及 "PerconaTookit" 管理工具的建议 会方便对数据库在线状态下的结构调整 在此,先进行安装一番 … 环境 MySQL版本: mysql 5.7.32 Linux 版本: CentOS7.9 PerconaTookit : 3.0.7 安装步骤 1). 安装第三方依赖包 首先需要安装几个第三方依赖包 yum install -y perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-
在 上一篇文章 中,我们介绍了网卡接收和发过数据在 Linux 内核中的处理过程,我们先来回顾一下网卡接收和发送数据的过程,如 图1 所示:
bpf全称伯克利包过滤器(Berkeley Packet Filte),bpf技术诞生于1992年,早期主要用来提升对数据包的过滤性能,但是早期的bpf提供的指令较少,限制了它的应用范围。本文要介绍的ebpf是bpf的扩展版本,相比早期版本的bpf功能变得更加强大,自2014年引入内核以来,BPF现在已经成发展成内核中一个通用的引擎,通过相关API我们可以方便的读取到内核态的内存内容,也能够通过BPF改写运行时内存,具有强大的编程能力。毫不夸张的说,BPF技术就是内核中的脚本语言。
JoJoGAN: One Shot Face Stylization. 只用一张人脸图片,就能学习其风格,然后迁移到其他图片。训练时长只用 1~2 min 即可。
市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。
一种是固定的、静态的连接,就是把需要用到的库函数的目标代码(二进制)代码从程序库中抽取出来,链接进应用软件的目标映像中;
pt工具是非常实用有效的一个工具集,对于诊断常规问题还是非常有效的,相比于Oracle的工具,MySQL中没有那么多复杂的数据字典,在实现方式上相对更加轻巧,主要都是针对日志的挖掘。在庞大复杂的日志中能够找出一些非常有效的信息,确实难能可贵。 image.png 在官网上查看Percona的系列产品,可以看到Percona Toolkit的一个Logo好像是条鹿犬。 image.png 如果查看用户手册,可以看到里面有非常多的命令,如果没有分门别类还是没有任何的方向。 在此找到同事之前的分享,工具的分类如下
在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包的呢?有的同学知道 tcpdump 是基于 libpcap 的,那么 libpcap 的工作原理又是啥样的呢。如果让你裸写一个抓包程序,你有没有思路?
例如:pt-mysql-summary --user=root--password=root -h localhost|pt-align 【pt-mysql-summary这个工具后面会讲到,这里为了演示pt-align的作用】
大家在日常工作中,往往需要对数据库的表结构做变更,一般涉及到增删字段,修改字段属性等ALTER的操作。
ftrace(FunctionTracer)是Linux内核的一个跟踪框架,它从2008年10月9日发布的内核版本2.6.27开始并入Linux内核主线[1]。官方文档[2]中的描述大致翻译如下:
线程是进程内部的一个执行流,作为 CPU 运行的基本单位,对于线程的合理控制与任务的执行效率息息相关,因此掌握线程基本操作(线程控制)是很有必要的
在 ~/.config/systemd/user目录下创建aria2.service文件,
Linux Signal想毕很多人都用过,比如在命令行下想要结束某个进程,我们会使用kill pid或者kill -9 pid,其实就是通过给对应的进程发送信号来完成。
在博客园写文章有一段时间了,除了自己有一些新的发现想与别人分享外,推动我写文章的最大动力就是看博客园排名不断增长啦!然而在博客园后台,只能看到当天的积分与排名,历史值和趋势却没有办法查询,对于文章发表后对自己积分与排名的影响并不直观,于是就想到自己动手做一个积分与排名趋势图这样一个工具。
由于UART0 被设定为系统dubug 输出(简单来说就是将ttyS0 设定为console),所以使用UART3 作为普通的串口,进行与别的设备通信。
程序是指储存在外部存储(如硬盘)的一个可执行文件, 而进程是指处于执行期间的程序, 进程包括 代码段(text section) 和 数据段(data section), 除了代码段和数据段外, 进程一般还包含打开的文件, 要处理的信号和CPU上下文等等.
pt-find这个工具,和Linux find命令类似,通过SHOW TABLE STATUS方式,查找特定的表并执行一些SQL语句,对于日常运维工作也是有比较大的帮助。
下载链接:https://www.chiark.greenend.org.uk/~sgtatham/putty/
在《系统调用分析(1)》Linux内核之旅/张凯捷——系统调用分析(1)中,首先介绍了系统调用的概念,并对早期通过软中断(int 80)来进行系统调用的相关过程进行了分析,最后分析和介绍了为了提高系统调用的响应执行速度的两种机制——vsyscall和vDSO。
* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 Percona Toolkit 神器全攻略 Percona Toolkit 神器全攻略系列共八篇分为 文章名文章名Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略(实用类)Percona Toolkit 神器全攻略(配置类)Percona Toolkit 神器全攻略(监控类)Percona Toolkit 神器全攻略(系统类)Percona Toolkit 神器全攻略(开发类)Percona Toolkit 神器全攻略(复制类)Percona Toolkit 神器全攻略(性能类) 全文约定:$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中,依据此约定进行理解与操作 Percona Toolkit 简介 Percona Toolkit简称(PT工具),是一组高级命令行工具,用于管理MySQL/GreatSQL的工具。可以用它来执行各种难以手动执行的MySQL/GreatSQL和系统任务。其功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握PT工具后将极大提高工作效率。
pt-config-diff 概要 比较 MySQL/GreatSQL 配置文件和服务器变量 用法
Linux系统中每个进程对应用户空间的pgd是不一样的,但是linux内核 的pgd是一样的。当创建一个新的进程时,都要为新进程创建一个新的页面目录PGD,并从内核的页面目录swapper_pg_dir中复制内核区间页面目录项至新建进程页面目录PGD的相应位置,具体过程如下:do_fork() --> copy_mm() --> mm_init() --> pgd_alloc() --> set_pgd_fast() --> get_pgd_slow() --> memcpy(&PGD + USER_PTRS_PER_PGD, swapper_pg_dir +USER_PTRS_PER_PGD, (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t))
1、多线程的问题引入 多线程的最大的特点是资源的共享,但是,当多个线程同时去操作(同时去改变)一个临界资源时,会破坏临界资源。如利用多线程同时写一个文件: #include <stdio.h> #include <pthread.h> #include <malloc.h> const char filename[] = "hello"; void* thread(void *id){ int num = *(int *)id; // 写文件的操作 F
本文作者 / yogazhao 爱自然科学,赞叹于大师级码农高超的艺术境界;爱生命科学,诚服于古圣先贤的天地气象。 可能大多数瓜农都对《艺伎回忆录》比较熟悉,作为一个IT界的码农,当然也有自己类似的经历,该文分为上篇和下篇,此篇为《OVS BUG撸码回忆录•上篇》 回忆录缘起 以前为排查ovs的某个bug,无奈撸了把相关内核流程。当时因为调用链太多,脑袋栈溢出,处理不过来,所以临时用txt比较零散的记录了下关键点,做完了就丢了。后面想起来,无奈用everything找了好久才找到, 再读之,发现忘了很
工作交接的时候 --> [新接手的工作,需要有个全局概览,在接触某些具体的机器的时候很有用,虽然CMDB也能做的,但是颗粒度可能更细] CMDB资源收集 --> [貌似这个很多时候都是自己写的agent] 故障排错 --> [很多时候排查故障的时候需要知道该机器的整体情况]
今天给大家介绍如何利用开源工具,搭建一套无下载限制的私有云盘。
为了安全,Linux 中分为用户态和内核态两种运行状态。对于普通进程,平时都是运行在用户态下,仅拥有基本的运行能力。当进行一些敏感操作,比如说要打开文件(open)然后进行写入(write)、分配内存(malloc)时,就会切换到内核态。内核态进行相应的检查,如果通过了,则按照进程的要求执行相应的操作,分配相应的资源。这种机制被称为系统调用,用户态进程发起调用,切换到内核态,内核态完成,返回用户态继续执行,是用户态唯一主动切换到内核态的合法手段(exception 和 interrupt 是被动切换)。
此工具要求用户 ptcheck 对所检查的库或表有读权限和对 ptcheck.checksum 有写权限 ,有在 ptcheck 库中创建表的权限
之前GitHub上有人整理过一个叫Awesome-Fuzzing的资料,整理了关于Fuzzing技术的电子书、视频、工具、教程以及用于练习的漏洞程序。整体上不错,但工具上还是不够全,有些不错且希望阅读代码学习的工具,发现未在其中,因此重新整理出下面这一份资源,其中有些还曾二次开发过,有些是还未来得及学习的,写出来权且当作学习计划。
本文介绍了ELF的基本结构和内存加载的原理,并用具体案例来分析如何通过ELF特性实现HIDS bypass、加固/脱壳以及辅助进行binary fuzzing。
小编发现很多朋友在linux上烧写、配置、搭建Edison环境的时候出现过很多问题,基本上很多人使用setup tool for ubuntu,小编在此先提醒各位,千万别用!
当我们在进行数据库的运维工作时,很多时候会出现主从数据不一致的故障,尤其是当我们的binlog格式没有选择row模式,当主库执行一些类似于replace select或者时间函数等不确定的随机函数时,会出现从库数据和主库数据不一样。复制线程同步的时候就会报错,运营人员抽取数据就不会准确,尤其是对数据的一致性和安全性较高的金融公司。这个时候我们就要借助percona公司的pt工具来进行处理,pt-table-checksum和pt-table-sync分别检验master-slave的数据不一致并修复,避免了人工分析并筛选binlog日志进行修复的繁琐。但是对于pt工具,版本之间的差异还是比较大,尤其是pt工具的3.0.4版本并不能很好的检测出来,故而分享这个坑给诸位一线人员。
前言:之前的文章介绍了基于 tracepoint 静态追踪技术的实现,本文再介绍基于 kprobe 的动态追踪即使的实现。同样,动态追踪也是排查问题的利器。
截止本人实验时候,github上面提供的最新版的普罗米修斯 mysqld_exporter 版本为 0.10.0 , 添加了pt-heartbeat的结合,同时也加入了对mariadb采集的支持(增加了命令show all slaves status)。
领取专属 10元无门槛券
手把手带您无忧上云