- 博客(90)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 nfs-ganesha 导出多个目录
针对于nfsd,通常可以在配置文件中做配置如下:就可以通过启动一个nfsd server,对外export多个挂载卷。那么,nfs-ganesha是如何做的呢?在ganesha配置文件中,添加EXPORT条目就可以。2. 配置ganesha.conf3. 启动ganesha服务后,在其他节点挂载测试选择另外一台节点,挂载export出来的目录。...
2022-07-13 11:38:02
1051
原创 linux - 添加文件的扩展属性
touch test.txtsetfattr -n user.abc -v 123 test.txtgetfattr -n user.abc test.txt
2021-04-01 10:18:31
525
原创 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
1614
原创 linux内核-VFS的结构
结构概观知识点1:VFS由两个部分组成,文件和文件系统,这都需要管理和抽象。文件的表示inode是内核选择用于表示文件内容和相关元数据的方法。
2021-03-22 08:29:25
498
原创 linux内核-虚拟文件系统
前言学习《深入linux内核架构》的书本阅读。基本是书中知识点的摘抄。VFS虚拟文件系统VFS在内核的层次结构图。应用目的:为支持本机文件系统,同时允许访问其他操作系统的文件,Linux内核在用户层和文件系统间引入了抽象层,虚拟文件系统(Virtual File System)。文件系统类型Disk-based Filesystem如EXT2Virtual Filesystem如proc网络文件系统如NFS通用文件模型VFS的解决方案,提供一种结构模型,包含文件系统所应具备的所
2021-03-16 23:19:35
161
原创 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
971
原创 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
266
原创 进程相关概念
进程相关概念程序和进程程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)进程,是一个抽象的概念,与操作系统原理联系紧密,进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)并发并发,在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但,在一个时刻点上仍只有一个进程在运行。时钟中断即为多道程序设计模型的理论基础。并发时,任意进程在执行期间都不希望放弃cpu,因此系统需要一种强制让出cpu资源的手段。时钟中断
2021-02-13 21:30:11
183
原创 Python - 从不同目录中导入文件
import syssys.path.append('../src')from utils import make_logger
2021-01-19 10:08:13
127
原创 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
213
原创 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
1544
原创 优快云 -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
339
原创 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
523
原创 linux - 保存rpm包到指定路径
1. 安装工具获取工具$ yum install -y yum-utils2. 将rpm包下载到指定位置$ yumdownloader --destdir=下载到指定路径 rsync
2020-12-30 10:51:18
479
原创 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
1078
原创 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
536
原创 fpsync - 脚本的学习
前言fpsync是基于fpart和rsync包装的一个迁移工具,由shell脚本编写。fpsync底层利用原生的rsync来做数据的备份工作,利用fpart来做待备份目录的解析。源码的实现上,整体逻辑非常清晰,分为了两大部分。一部分:用来做参数的解析和环境合法性检测;另一部分:结合fpart和rsync来做备份操作,由多个备份作业同时进行。下面,主要介绍fpsync做多个作业并发备份的实现思想。fpsync首先介绍fpart和rsync的基本使用,以及两个第三方工具必须依赖的参数信息。一、 r
2020-12-08 18:53:44
998
原创 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
2106
原创 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
2027
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
270
原创 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
1062
原创 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
873
原创 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
401
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
128
原创 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
335
原创 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
155
原创 Linux - rsync工具使用
文章目录前言一、fio参数解释说明二、使用步骤1.同步源地址与目标地址的文件总结前言记录一下rsync工具的使用一、fio参数解释说明待补充。二、使用步骤1.同步源地址与目标地址的文件rsync -a 用户@源地址主机所在IP:/源目标路径 目标路径总结待补充...
2020-09-04 11:26:00
104
原创 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
1931
原创 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
119
原创 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
274
原创 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
1457
原创 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
1967
原创 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
1124
原创 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
1093
原创 BackupPC 部署安装
基本介绍backup主页链接BackupPC是一种高性能的企业级系统,用于将Linux,Windows和macOS PC和便携式计算机备份到服务器磁盘。 BackupPC是高度可配置的,并且易于安装和维护。特点:Web interface Web界面使管理员可以查看日志文件,配置,当前状态,并允许用户启动和取消备份以及浏览和还原备份中的文件。Data deduplication 重复数据删除:同一或不同PC的多个备份中的相同文件仅存储一次,从而大大节省了磁盘存储和磁盘I / O。 这里的相
2020-08-26 15:35:24
2282
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
662
effiective c++
2018-10-09
机器学习中例子 可能因为python3出现错误 求指导
2016-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人