自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++ Primer 第一章

这里属于一个语句的结束。

2023-04-15 12:35:17 133

原创 nfs-ganesha 导出多个目录

针对于nfsd,通常可以在配置文件中做配置如下:就可以通过启动一个nfsd server,对外export多个挂载卷。那么,nfs-ganesha是如何做的呢?在ganesha配置文件中,添加EXPORT条目就可以。2. 配置ganesha.conf3. 启动ganesha服务后,在其他节点挂载测试选择另外一台节点,挂载export出来的目录。...

2022-07-13 11:38:02 723

原创 linux - 添加文件的扩展属性

touch test.txtsetfattr -n user.abc -v 123 test.txtgetfattr -n user.abc test.txt

2021-04-01 10:18:31 386

原创 linux - 配置Ramdisk创建内存盘

操作系统是centos7注入内核模块,一个16GB的内存盘modprobe brd rd_nr=1 rd_size=16777216 max_part=0查看创建的内存盘ls /dev/ram*磁盘设备格式化mkfs.ext4 /dev/ram0创建挂载设备,进行挂载mount /dev/ram0 /log

2021-03-30 17:06:04 1366

原创 linux内核-VFS的结构

结构概观知识点1:VFS由两个部分组成,文件和文件系统,这都需要管理和抽象。文件的表示inode是内核选择用于表示文件内容和相关元数据的方法。

2021-03-22 08:29:25 394

原创 linux内核-虚拟文件系统

前言学习《深入linux内核架构》的书本阅读。基本是书中知识点的摘抄。VFS虚拟文件系统VFS在内核的层次结构图。应用目的:为支持本机文件系统,同时允许访问其他操作系统的文件,Linux内核在用户层和文件系统间引入了抽象层,虚拟文件系统(Virtual File System)。文件系统类型Disk-based Filesystem如EXT2Virtual Filesystem如proc网络文件系统如NFS通用文件模型VFS的解决方案,提供一种结构模型,包含文件系统所应具备的所

2021-03-16 23:19:35 115

原创 linux内核 - ll命令跟踪

写在前面内核源码版本,3.10。小菜鸟,下面是个人笔记,还有很多不明白的,如有错误请多多指正。跟踪过程目的路径,是利用nfs方式进行挂载的。通过调用lookup的堆栈信息,可以观察到调用过程包括system_call_fastpath->sys_newlstat->trace_do_page_fault->sysc_newlstat->vfs_fstatat->user_path_at->user_path_at_empty->filename_lookup

2021-03-16 15:50:32 726

原创 Linux内核 - 线程创建, memcpy的应用

应用场景第一次ll操作返回正常的显示信息,第二次做ll操作报no such file的错误信息模拟。但没有成功实现。记录一下,此次试验的小知识点。模拟中,是在lookup函数中修改dentry内容,主要内存块拷贝+延迟的操作。需要利用到内核线程的启动。#include <linux/sched.h>#include <linux/errno.h>#include <linux/kthread.h>struct d_replace{

2021-03-15 16:39:48 205

原创 进程相关概念

进程相关概念程序和进程程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)进程,是一个抽象的概念,与操作系统原理联系紧密,进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)并发并发,在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但,在一个时刻点上仍只有一个进程在运行。时钟中断即为多道程序设计模型的理论基础。并发时,任意进程在执行期间都不希望放弃cpu,因此系统需要一种强制让出cpu资源的手段。时钟中断

2021-02-13 21:30:11 124

原创 Python - 从不同目录中导入文件

import syssys.path.append('../src')from utils import make_logger

2021-01-19 10:08:13 81

原创 MIT 6.824 课程学习

学习资料课程主页肖宏辉的课程翻译

2021-01-12 08:27:42 209 1

原创 Python - 命令行工具,解析器的使用

使用解析器,使用如tool start类似的命令import argparseimport subprocessdef start(args): print('hello world') def cmd(): # 创建上层解析器 parser = argparse.ArgumentParser(prog = 'tools') subparsers = parser.add_subparsers(title = 'subcommands', descripti

2021-01-06 19:24:58 168

原创 Python - 正则表达式判断是否是时间(小时:分钟)

利用正则表达式判断是否时间格式def func(string): return True if( re.match("^(([0-1]\d)|(2[0-4])):[0-5]\d$", string) ) is not None else False

2021-01-05 16:01:34 1427

原创 CSDN -python 定时器

利用python启动定时任务from apsscheduler.shcedulers.blocking import BlockingSchedulerscheduler = BlockingScheduler()if __name__ == '__main__': scheduler.add_job(函数名, 'interval', minutes = 30) scheduler.start()

2021-01-05 09:42:36 204

原创 Linux - find命令使用笔记

查看某一个路径下的所有文件$ ll -h `find /指定路径 -type f`

2021-01-04 18:39:26 175

原创 Linux - 制造空洞文件

利用dd制造空洞文件# 制造空洞文件# seek 跳过多少个bs打数据# count 打多少个bs# 最终将生成128M大小的文件,du 64M, ll 128M$ dd -if=/dev/urandom of=./hole-64M bs=4M count=16 seek=16

2021-01-04 18:37:53 437

原创 linux - 保存rpm包到指定路径

1. 安装工具获取工具$ yum install -y yum-utils2. 将rpm包下载到指定位置$ yumdownloader --destdir=下载到指定路径 rsync

2020-12-30 10:51:18 416

原创 iostat -查看磁盘利用率

iostat工具使用:格式:iostat[参数][时间][次数]功能:iostat可查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。参数-C 显示CPU使用情况-d 显示磁盘使用情况-k 以 KB 为单位显示-m 以 M 为单位显示-N 显示磁盘阵列(LVM) 信息-n 显示NFS 使用情况-p[磁盘] 显示磁盘和分区的情况-t 显示终端和CPU的信息-x 显示详细信息-V 显示版本信息磁盘利用率查看$ iostat -d

2020-12-16 14:21:02 946

原创 fpsync - 使用记录

标准模式标准模式下调用rsync的基本命令。$ rsync -lptgoD -v --numeric-ids -r --files-from=/tmp/fpsync/parts/16XXXX/part.X --from0 src_dir/ dst_dir/ -E模式-E模式下调用rsync的基本命令。$ rsync -lptgoD -v --numeric-ids -d --relative --delete --delete-after --files-from=/tmp/fpsync/par

2020-12-15 16:39:01 353

原创 fpsync - 脚本的学习

前言fpsync是基于fpart和rsync包装的一个迁移工具,由shell脚本编写。fpsync底层利用原生的rsync来做数据的备份工作,利用fpart来做待备份目录的解析。源码的实现上,整体逻辑非常清晰,分为了两大部分。一部分:用来做参数的解析和环境合法性检测;另一部分:结合fpart和rsync来做备份操作,由多个备份作业同时进行。下面,主要介绍fpsync做多个作业并发备份的实现思想。fpsync首先介绍fpart和rsync的基本使用,以及两个第三方工具必须依赖的参数信息。一、 r

2020-12-08 18:53:44 707

原创 fpsync 基本介绍

1. rsync的缺陷sync是以字节为单位进行传输的迁移工具。它的缺陷,一方面:传输large或者deep为特征的数据时,它通常会先list所有的文件再进行传输,list时间可能耗费很长时间然后再进行真正的传输。另一方面:rsync即使在高速的网络上也仅占用少用的带宽传输。尽管,可以启动多个rsync进程来完善。但启动多个rsync也可能造成系统过载。2. 利用parallel来提升迁移速率# parallel -j {number} number用来限制rsync的最多启动数量find -L

2020-12-07 15:04:04 1537

原创 linux - 安装阿里的yum源

文章目录1. 安装wget2. 备份/etc/yum.repos.d/CentOS-Base.repo3. 下载阿里云的Centos-7.repo文件4. 重新加载yum1. 安装wget$ yum install -y wget2. 备份/etc/yum.repos.d/CentOS-Base.repo$ cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak3. 下载阿里云的Centos-7.r

2020-12-01 23:43:53 1821 2

原创 linux - I/O复用:select

I/O多路复用:在多个网络连接中,共用少数几个进程或线程。支持IO多路复用的进程,需要先通知内核进行监控,等待内核监控到指定的一个或者多个I/O条件就绪(输入准备好被读取,或者文件描述符已经能承受更多的输出),它就通知进程。5种I/O模型基本区别输入操作包括两个阶段:等待数据准备好从内核向进程复制数据对于一个套接字上的输入操作,1. 等待数据从网络中到达。当所有等待分组到达时,它被复制到内核中的某个缓冲区。2. 将数据从内核缓冲区复制到应用进程缓冲区。阻塞式I/O模型阻塞式I/O模型(

2020-12-01 08:32:59 173

原创 linux - mdtest工具使用

文章目录前言一、使用步骤总结前言mdtest工具的使用一、使用步骤# -C 只创建文件目录,不做删除# -F 只创建文件,没有目录# -L 只在文件的叶子层创建文件,目录# -w 写入文件的字节大小# -z 根目录到叶子节点深度# -b 目录树的分支参数# -I 每个树节点包含的项目数# -d 待生成的目录文件$ mdtest -CLF -w 1024 -z 2 -b 10 -I 10 -d ./总结待总结。...

2020-11-30 11:53:07 803

原创 Socket套接字的创建及数据包传输

通过套接字通信套接字的产生:套接字用于定义和建立网络连接,以便可以用来操作inode的普通方法(特别是读写操作)来访问网络。地址族:目前每个地址族都只支持一个协议族,而且只能区分面向流的通信和面向数据报的通信。使用套接字:客户端:#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#include <sys/types.h>#include <string.h&g

2020-11-25 15:33:10 700

原创 linux - 网络io到多路复用(马士兵视频学习实验)

背景这篇博客用来记录网络io到多路复用视频课程的实验。创建tcp链接后,生成了一个socket并返回文件描述符重定向到8.# 8代表文件描述符 < 输入 > 输出$ exec 8<> /dev/tcp/www.baidu.com/80# $$表示当前解释器的进程# 进入到文件描述目录下$ cd /proc/$$/fd$ pwd/proc/20222/fd# 0 标准输入流 1 标准输出流 2 标准错误流 # 8 指向了一个socket# 出现socket后

2020-11-24 17:45:03 341 1

原创 linux - 文件描述符

1. 背景下面的学习,是根据B站的视频来的。[IO复用select/poll/epoll详解](https://www.bilibili.com/video/BV1pp4y1e7xN/?p=2)1. 知识点梳理文件描述符: 0, 1, 2进程id: $$ 20220/pro/pid/id 文件描述符文件描述符:打开的文件 socket服务端:链接超时基于网络通信: 阻塞TCP:面向连接的 可靠的传输协议3次握手,4次分手粒度 不应该被拆散nc tomcat systemcall

2020-11-23 15:13:00 92

原创 linux - 启动多线程绑定cpu

#define _GNU_SOURCE#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <sched.h>#include <unistd.h>struct Message{ int num; char msg[32];};void bind_cpu(void *ptr);vo

2020-11-17 09:56:08 258

原创 Linux - 免密登录

文章目录前言一、ssh是什么?二、使用步骤1.客户端生成公钥与私钥,并上传公钥到服务端总结前言设置客户端与服务端的免密登录一、ssh是什么?待补充二、使用步骤1.客户端生成公钥与私钥,并上传公钥到服务端$ mkdir /var/lib/待免密使用的应用程序$ cd /var/lib/待免密使用的应用程序$ mkdir .ssh$ chown root:root .ssh$ chmod 700 .ssh$ ssh-keygen -t rsa$ ssh-copy-id root@服

2020-09-04 11:35:09 129

原创 Linux - rsync工具使用

文章目录前言一、fio参数解释说明二、使用步骤1.同步源地址与目标地址的文件总结前言记录一下rsync工具的使用一、fio参数解释说明待补充。二、使用步骤1.同步源地址与目标地址的文件rsync -a 用户@源地址主机所在IP:/源目标路径 目标路径总结待补充...

2020-09-04 11:26:00 70

原创 Linux - fio工具使用

文章目录前言一、fio参数解释说明二、使用步骤1. 打1G文件数据2.在已有文件后追加数据总结前言记录一下fio工具的使用一、fio参数解释说明待补充二、使用步骤1. 打1G文件数据$ fio --ioengine=libaio --sync=1 --thread=1 --numjobs=2 --iodepth=8 --bs=8M --size=1G --rw=write --group_reporting --name=文件名称 --directory=/存放文件路径2.在已有文件后

2020-09-04 10:49:43 844

原创 python - 安装pip源

$ vim ~/.pip/pip.conf[global]index-url = http://mirrors.yum.xxx.xx.xx:port/pypi/web/simple[install]trusted-host = mirrors.yun.xxx.com.cn

2020-09-02 17:12:26 79

原创 python - 输入执行命令交互

#!/usr/bin/pythonimport osimport pexpectimport datetimeif __name__ == '__main__': pwd = 'xxx' cmd = 'rsync -a root@待迁移主机:/待迁移路径/* ./' start_time = datetime.datetime.now() child = pexpect.spawn(cmd) child.expect('password:') child.sendline(pwd

2020-09-02 15:15:54 238

原创 BackupPC - 恢复选项Restore options

文章目录前言一、CGI restore options恢复选项1. 直接恢复2. 下载zip存档3. 下载tar存档二、Command-line restore options 命令行操作1. BackupPC_zcat2. BackupPC_tarCreate总结前言主要针对BackupPC的恢复选项进行概括。BackupPC支持几种不同的还原文件的方法: 1. 通过CGI界面提供了直观的还原方法选项; 2. 使用手动命令还原备份文件。一、CGI restore options在web浏览界

2020-09-01 15:14:29 1204

原创 Linux - NFS3的挂载方式

文章目录前言一、nfs二、使用步骤1. 查看nfs服务器可挂载设备2. 挂载方法总结参考文档前言云主机需要挂载一个远端的卷,利用nfs3的方式。配置文件,其他人已经写好了,我只记录一下挂载的命令。一、nfs忽略二、使用步骤1. 查看nfs服务器可挂载设备$ showmount -e XXX.XXX.XX.XXX 2. 挂载方法# NFS3$ mount -t nfs XXX.XXX.XX.XXX:/mnt/xxx/xxx(服务器暴露地址) /mnt/data0(本机挂载点)总结

2020-09-01 09:57:17 1503

原创 BackupPC 文档学习

BackupPC Introduction搭建过的backuppc是4.3.1版本。文档资料Overview

2020-08-28 16:32:30 2350

原创 BackupPC 备份迁移的使用

BackupPC的初体验backuppc的部署文档源码装完,总想着试一试。先搞一搞吧,然后还得看看backuppc的具体文档。我用了3台虚拟机,1台用作backuppc的服务器192.168.47.146(暂且这么称呼,backuppc的具体架构还不清楚得捋)。2台用作备份的目标机192.168.47.147和192.168.47.148。然后,分别做最基本的功能性实验备份还有迁移。1. 客户机的免密设置这个部分主要参考了Backuppc搭建与使用文档分别在46机器上对47和48两台机器做免密。

2020-08-27 16:33:07 890

原创 BackupPC 部署安装与使用报错汇总

报错问题汇总TextFileWrite: Failed to write /etc/BackupPC/config.pl.new看到了一个在github上提的issue,其中一个靠谱的回答是添加几条语句来看一下报错的详细信息。--- lib/BackupPC/Storage/Text.pm 2018-04-08 16:49:11.076952954 -0700+++ lib/BackupPC/Storage/Text.pm 2018-04-08 17:00:09.506198265 -0700

2020-08-27 15:09:53 1019

原创 BackupPC 部署安装

基本介绍backup主页链接BackupPC是一种高性能的企业级系统,用于将Linux,Windows和macOS PC和便携式计算机备份到服务器磁盘。 BackupPC是高度可配置的,并且易于安装和维护。特点:Web interface Web界面使管理员可以查看日志文件,配置,当前状态,并允许用户启动和取消备份以及浏览和还原备份中的文件。Data deduplication 重复数据删除:同一或不同PC的多个备份中的相同文件仅存储一次,从而大大节省了磁盘存储和磁盘I / O。 这里的相

2020-08-26 15:35:24 2062 4

原创 SaltStack - salt-api的使用

SaltStack简介Salt使用server-agent(服务代理模型)通信模型,服务端组件被称为Salt master, agent 被称为 Salt minion.Salt master主要负责向Salt minions发送命令,然后聚合并显示这些命令结果。一个Salt master可以管理多个minion系统。Salt server与Salt minion通信的链接由Salt minion发起,这也意味着Salt minion上不需要打开任何传入端口(从而减少攻击)。Salt server使用端口

2020-08-18 20:19:29 549

GlusterFS分析报告.pdf

glusterfs分析报告,源码分析,网上下载下来的, 现在上传共享资源。

2020-03-24

GlusterFS-主函数工作流程.pdf

glusterfs-主函数工作流程, 2009年的一篇文档。包含6个模块的简要分析,是自己保存的一份文档,给需要的人下载。

2020-03-19

effiective c++

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。 《Effective C++》的重要特征包括: ·高效的 classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。 ·崭新的 TR1 标准程序库功能应用,以及与既有标准程序库组件的比较。 ·洞察 C++和其他语言(例如Java、C#、C)之间的不同。此举有助于那些来自其他语言阵营的开发人员消化吸收 C++ 式的各种解法。

2018-10-09

验证码自动识别代码

验 证 码 自 动 识 别 代 码 , 内 附 有 完 整 代 码

2014-12-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除