ansible create file

ansible create file - name: ensure file exists copy: content: "" dest: /etc/nologin force: no group: sys owner: root mode: 0555 https://stackoverflow.com/questions/28347717/how-to-create-an-empty-file-with-ansible

2018-01-25 · 1 min · 22 words · -

linux network

linux network https://segmentfault.com/a/1190000008836467 https://segmentfault.com/a/1190000008926093 https://segmentfault.com/a/1190000009249039

2018-01-22 · 1 min · 5 words · -

REST

REST REST Representational State Transfer

2018-01-22 · 1 min · 5 words · -

隧道协议

隧道协议 隧道技术的实质是用一种网络层的协议来传输另一种网络层协议,其基本功能是封装和加密,主要利用网络隧道来实现。 https://en.wikipedia.org/wiki/Tunneling_protocol https://baike.baidu.com/item/%E9%9A%A7%E9%81%93%E5%8D%8F%E8%AE%AE/5927649

2018-01-20 · 1 min · 4 words · -

内核态, 用户态

内核态, 用户态 用户态 Ring3运行于用户态的代码则要受到处理器的诸多检查,它们只能访问映射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址,且只能对任务状态段 (TSS) 中I/O许可位图 (I/O Permission Bitmap) 中规定的可访问端口进行直接访问。 内核态 Ring0 在处理器的存储保护中, 核心态 ,或者特权态 (与之相对应的是用户态) ,是操作系统内核所运行的模式。运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。 内核态和用户态 核心态和用户态是操作系统两种运行级别。 核心态就是拥有资源较多的状态,或者说访问资源多的状态,也称之为特权态;相对来说,用户态就是非特权态,访问资源将受到限制。 核心态下CPU可执行任何指令,而用户态下CPU只能执行非特权指令。当CPU处于核心态时可随意进入用户态;而处于用户态时,切换到核心态只有在系统调用和中断时才能发生。一般程序一开始都是运行与用户态,当程序需要系统资源时,就必须通过中断进入核心态。 用户态切换到内核态的3种方式 系统调用 这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。 异常 当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。 外围设备的中断 当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。 这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。 核心态和用户态各有优势: 运行在核心态的程序可访问的资源多,但可靠性、安全性要求高,维护管理比较复杂。一个程序运行在哪取决于其对资源和效率的需求。 用户栈和内核栈 内核在创建进程的时候, 会为进程创建对应的堆栈. 每个进程有两个栈, 一个用户栈, 存在于用户空间; 一个内核栈,存在于内核空间。当进程运行在用户态时,CPU堆栈指针寄存器里的内容是用户堆栈地址,使用用户栈;在核心态时, 同理。 当进程因为中断或系统调用而进入内核态时,进程所使用的堆栈也要有用户栈转到内核栈。进程陷入内核态后,先把用户堆栈的地址保存到内核栈之中,然后设置堆栈指针寄存器的内容为内核栈的地址;当恢复到用户态时,把内核栈中保存的用户栈的地址恢复到堆栈指针寄存器即可。 进程从用户态转到内核态时,进程的内核栈总是空的,所以进程陷入内核的时候,直接把栈顶地址给堆栈指针寄存器即可。 http://www.cnblogs.com/balingybj/p/4783119.html http://www.cnblogs.com/Allen-rg/p/7171105.html http://blog.csdn.net/xifeijian/article/details/9080895 https://www.zhihu.com/question/40147261 https://www.jianshu.com/p/255c6c7603d0 https://zhuanlan.zhihu.com/p/279354447

2018-01-19 · 1 min · 48 words · -

filebeat

filebeat elasticsearch output 配置索引 vim /etc/filebeat/filebeat.yml setup.template.name: "filebeat-" setup.template.pattern: "filebeat-*" output.elasticsearch: hosts: ["http://192.168.6.8:9200"] index: "filebeat-%{+yyyy.MM.dd}" sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch Create a file with a .repo extension (for example, elastic.repo) in your /etc/yum.repos.d/ directory and add the following lines: [elastic-6.x] name=Elastic repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md Your repository is ready to use. For example, you can install Filebeat by running: sudo yum install filebeat To configure the Beat to start automatically during boot, run: ...

2018-01-19 · 1 min · 82 words · -

logstash

logstash /etc/logstash/conf.d/logstash.conf input { redis { id => "system-log" data_type=>"list" host=>"127.0.0.1" port=>"6379" key=>"system-log" } redis { id => "app-log" data_type=>"list" host=>"127.0.0.1" port=>"6379" key=>"app-log" } } output { if "app-log" in [tags] { elasticsearch { id => "elk-es-app" hosts => "127.0.0.1:9200" index => "logstash-app-log-%{+YYYY.MM.dd}" } }else{ elasticsearch { id => "elk-es-sys" hosts => "127.0.0.1:9200" index => "logstash-sys-log-%{+YYYY.MM.dd}" } } }

2018-01-18 · 1 min · 59 words · -

chrome standalone 离线安装

chrome standalone 离线安装 https://www.google.com/chrome/browser/thankyou.html?standalone=1&platform=win&installdataindex=defaultbrowser standalone=1 : 确认下载离线安装包 platform=win : 适用平台为windows installdataindex=defaultbrowser : 安装后设chrome为当前默认浏览器 extra=stablechannel : 指定版本为稳定版 (候选列表同上) 作者: DevNull 链接: https://www.zhihu.com/question/19981495/answer/83273865 来源: 知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2018-01-18 · 1 min · 24 words · -

golang git server, gogs, gitea

golang git server, gogs, gitea gitea 的文档 只提到了docker compose的部署方式, 想改成podman 还需要折腾一下, gogs 的文档 更清晰一些方便使用podman podman run --rm --name=gogs -p 10022:22 -p 10880:3000 -v gogs-data:/data gogs/gogs:latest http://192.168.50.13:10880 Database Type: sqlite3 Application Name: pingd Domain: 192.168.50.13 SSH Port: 1022 docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs # docker for gogs sudo systemctl status docker sudo systemctl start docker sudo systemctl enable docker sudo docker pull gogs/gogs mkdir -p /data/gogs sudo docker run -name=gogs -p 10022:22 -p 10080:3000 -v /data/gogs:/data gogs/gogs sudo docker start gogs sudo docker stop gogs sudo docker rm gogs Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。 ...

2018-01-17 · 1 min · 135 words · -

linux 内存盘 tmpfs

linux 内存盘 tmpfs # archlinux tmp dir resize sudo mount -o remount,size=10G,noatime /tmp mount tmpfs /tmp -t tmpfs -o size=1024m 把内存当硬盘, 提速你的 linux 系统 场景: 电脑内存太大用不了那么多, 空着浪费, 所以利用起来。内存读写速度高用来缓存或者编译, 甚至存临时文件最好不过了~~ Windows 下有一种叫法叫做内存盘, Linux 自然也有, 看了 Linux 中 ramdisk, tmpfs, ramfs 比较与说明这篇文章后, 决定使用 tmpfs 文件系统。 关于 tmpfs和VM linux 的内存 (VM) ,包括 ram和 swap两部分。 ram 就是你的物理内存, swap 就是在装系统的时候划分的swap分区(在win下叫做页面文件,默认位于C:\pagefiles.sys)。 VM也是程序所能使用的最大内存上限,tmpfs本质上也是VM,tmpfs划出VM的部分页面作为一个文件系统. 关于 tmpfs 和 ramdisk linux 下的 ramdisk 是由内核提供的, 要使用之, mount 命令挂载即可。不需要第三方工具。但因为它会被视为块设备, 所以仍然需要格式化该文件系统。 ramdisk 一旦创建就会占用固定大小的物理内存, tmpfs则是动态分配。 ...

2018-01-16 · 1 min · 121 words · -

微内核 宏内核

微内核 宏内核 微内核 Micro Kernel 微内核: 功能被划分成独立的过程,过程间通过IPC进行通信。模块化程度高,一个服务失效不会影响另外一个服务。 在微内核中,大部分内核都作为独立的进程在特权状态下运行,它们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,如果在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收系统调用,并和能够执行系统调用的其它进程 (或模块) 通讯以完成所需任务。 在这些设计中,微内核部分经常只不过是一个消息转发站: 当系统调用模块要给文件系统模块发送消息时,消息直接通过内核转发。这种方式有助于实现模块间的隔离。 (某些时候,模块也可以直接给其它模块传递消息。) 在一些微内核的设计中,更多的功能,如I/O等,也都被封装在内核中了。但是最根本的思想还是要保持微内核尽量小,这样只需要把微内核本身进行移植就可以完成将整个内核移植到新的平台上。其它模块都只依赖于微内核或其它模块,并不直接直接依赖硬件。 微内核设计的一个优点是在不影响系统其它部分的情况下,用更高效的实现代替现有文件系统模块的工作将会更加容易。我们甚至可以在系统运行时将开发出的新系统模块或者需要替换现有模块的模块直接而且迅速的加入系统。另外一个优点是不需要的模块将不会被加载到内存中,因此微内核就可以更有效的利用内存。 宏内核 Monolithic Kernel / macro kernel 单内核: 也称为宏内核。将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效 单内核是个很大的进程。他的内部又能够被分为若干模块 (或是层次或其他) 。但是在运行的时候,他是个单独的二进制大映象。其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是消息传递。 单内核的支持者声称微内核的消息传递开销引起了效率的损失。微内核的支持者则认为因此而增加的内核设计的灵活性和可维护性能够弥补任何损失。 微内核的系统有WindowNT,Minix,Mach,etc. 宏内核的系统有Unix,Linux,etc. https://www.zhihu.com/question/20314255 http://blog.sciencenet.cn/blog-1225851-807086.html https://segmentfault.com/a/1190000002711544

2018-01-15 · 1 min · 32 words · -

Ansible setup模块

Ansible setup模块 https://www.ipcpu.com/2016/01/ansible-setup-when/ Ansible入门setup模块和条件判断 Linux ipcpu 2年前 (2016-01-11) 5963浏览 Ansible入门setup模块和条件判断.md 一、setup模块 setup模块用于收集远程主机的一些基本信息。 而在playbook中,默认参数"gather_facts: True"的含义就是在远程主机运行setup模块,并将收集的信息记录起来。 这样在后面的playbook里面可以调用并进行一些判断和对照。 使用方法如下: [root@ansible test]$ansible all -m setup |more 211.127.129.182 | success » { “ansible_facts”: { “ansible_all_ipv4_addresses”: [ “211.127.129.182” ], “ansible_all_ipv6_addresses”: [], “ansible_architecture”: “x86_64”, “ansible_bios_date”: “09/21/2014”, “ansible_bios_version”: “6.00”, “ansible_cmdline”: { “KEYBOARDTYPE”: “pc”, “KEYTABLE”: “us”, “LANG”: “en_US.UTF-8”, OUTPUT OMITTED. 因显示篇幅过长,这列只列举一些常用项目 “ansible_all_ipv4_addresses”: [ “211.97.148.137”, “10.6.7.24” ], @这里列出了所有IPv4地址 “ansible_architecture”: “x86_64”, @操作系统架构 “ansible_distribution”: “RedHat”, “ansible_distribution_major_version”: “5”, “ansible_distribution_release”: “Tikanga”, “ansible_distribution_version”: “5.8”, @操作系统版本信息 “ansible_eth0”: { “active”: true, “device”: “eth0”, ...

2018-01-10 · 2 min · 247 words · -

ELK Stack

ELK Stack ELK ELK 是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写, 这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack ELK Stack 已经成为目前最流行的集中式日志解决方案。 Elasticsearch: 分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能; Logstash: 数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置; Kibana: 数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示; Filebeat: ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。 Grok 是 Logstash 最重要的插件。你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它。 https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/index.html http://soft.dog/2015/12/24/beats-basic/#section

2018-01-10 · 1 min · 50 words · -

chkconfig

chkconfig chkconfig --list # 如果这个服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去 chkconfig –-add postfix # 比如要将MySQLd设置为开机自动启动 chkconfig MySQLd on # 取消 postfix 的自动启动 chkconfig postfix off https://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html chkconfig命令主要用来更新 (启动或停止) 和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。 使用语法: chkconfig [-add][-del][-list][系统服务] 或 chkconfig [-level <等级代号>][系统服务][on/off/reset] chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。 参数用法: -add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 -del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。 -level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。 等级0表示: 表示关机 等级1表示: 单用户模式 等级2表示: 无网络连接的多用户命令行模式 等级3表示: 有网络连接的多用户命令行模式 等级4表示: 不可用 等级5表示: 带图形界面的多用户模式 等级6表示: 重新启动 需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。 chkconfig --list [name]: 显示所有运行级系统服务的运行状态信息 (on或off) 。如果指定了name,那么只显示指定的服务在不同运行级的状态。 chkconfig --add name: 增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。 chkconfig --del name: 删除服务,并把相关符号连接从/etc/rc[0-6].d删除。 chkconfig [--level levels] name: 设置某一服务在指定的运行级是被启动,停止还是重置。 http://www.edbiji.com/doccenter/showdoc/78/nav/994.html

2018-01-10 · 1 min · 79 words · -

golang pdf,excel

golang pdf,excel excel https://github.com/360EntSecGroup-Skylar/excelize https://github.com/jung-kurt/gofpdf

2018-01-08 · 1 min · 5 words · -

itext commants, annotation

itext commants, annotation https://gist.github.com/i000313/6372210

2018-01-07 · 1 min · 4 words · -

memcache basic,command

memcache basic,command run as docker podman run \ --name memcache \ -d \ -p 11211:11211 \ -v /etc/localtime:/etc/localtime:ro \ memcached -m 16 connect telnet HOST PORT set set key flags exptime bytes [noreply] value # 参数说明如下: key: 键值 key-value 结构中的 key,用于查找缓存值。 flags: 可以包括键值对的整型参数, 客户机使用它存储关于键值对的额外信息 exptime: 在缓存中保存键值对的时间长度 (以秒为单位,0 表示永远) bytes: 在缓存中存储的字节数 noreply (可选) : 该参数告知服务器不需要返回数据 value: 存储的值 (始终位于第二行) (可直接理解为key-value结构中的value) ### 示例 set foo 0 0 3 bar #获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。 get key # 删除key delete <key> #输出各个slab中的item的数目和最老item的年龄(最后一次访问距离现在的秒数) . stats items # 根据<slab_id>输出相同的<slab_id>中的item信息。是输出的个数,当为0是输出所有的item。 stats cachedump <slab_id> #显示各个slab的信息,包括chunk的大小、数目、使用情况等。 stats slabs Memcached 连接 ...

2018-01-05 · 1 min · 167 words · -

ConcurrentLinkedQueue

ConcurrentLinkedQueue http://www.infoq.com/cn/articles/ConcurrentLinkedQueue 一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。 新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。此队列不允许使用 null 元素。 https://www.cnblogs.com/yangzhenlong/p/8359875.html ConcurrentLinkedQueue是Queue的一个安全实现.Queue中元素按FIFO原则进行排序.采用CAS操作,来保证元素的一致性。 https://blog.51cto.com/u_15259710/3193985 https://juejin.cn/post/6844903602427805704

2018-01-03 · 1 min · 16 words · -

多源复制

多源复制 MySQL 5.7多源复制实践 什么是多源复制 首先,我们需要清楚几种常见的复制模式: 一主一从 一主多从 级联复制 multi-master MySQL 5.7 之前只能实现一主一从、一主多从或者多主多从的复制。如果想实现多主一从的复制,只能使用 MariaDB,但是 MariaDB 又与官方的 MySQL 版本不兼容。 MySQL 5.7 开始支持了多主一从的复制方式,也就是多源复制。MySQL 5.7 版本相比之前的版本,无论在功能还是性能、安全等方面都已经有不少的提升。 首先,我们需要清楚 multi-master 与 multi-source 复制不是一样的。multi-master 复制通常是环形复制,你可以在任意主机上将数据复制给其他主机。 MySQL multi-source 是不同的。简单的说,多源复制就是将多个主库同步到一个从库上面,从而增加从的利用率,节省了机器。如下图:

2017-12-21 · 1 min · 31 words · -

tftp

tftp default TFTP port 69. pacman -S tftp-hpa

2017-12-20 · 1 min · 8 words · -