keys

学习Linux的第七十天

青春壹個敷衍的年華 提交于 2019-12-27 01:03:00
一.自动化运维介绍 传统运维缺点 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问题 Puppet (www.puppetlabs.com)基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。 分为社区版(免费)和企业版(收费),企业版支持图形化配置。 Saltstack(官网 https://saltstack.com,文档docs.saltstack.com )基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷,配置和使用比puppet容易,能实现puppet几乎所有的功能。 Ansible (www.ansible.com )更加简洁的自动化运维工具,不需要在客户端上安装agent,基于python开发。可以实现批量操作系统配置、批量程序的部署、批量运行命令。 二.saltstack安装 saltstack介绍文档 https://docs.saltstack.com/en/latest/topics/index.html saltstack最新yum源 https://repo.saltstack.com/#rhel 可以使用salt-ssh远程执行

selenium 批量下载qq邮箱附件

两盒软妹~` 提交于 2019-12-25 06:33:45
# encoding:utf-8 import os import urllib import _thread import time from selenium import webdriver from selenium . webdriver . common . keys import Keys #...................................................... # 自定义参数 #...................................................... ''' 先登陆邮箱,找到你想处理的文件夹,右键新窗口打开,在浏览器地址栏可以看到以下地址,或者在Network中抓包: https://mail.qq.com/cgi-bin/frame_html?t=frame_html&sid={ A }&url=/cgi-bin/mail_list?folderid={ B }%26page={ C } ''' # 需要自定义的参数已在上方链接以 A B C 标记出,然后自己替换下面的参数 ''' A - token['sid'] 这串密钥会定时更新,每次使用时需要重新填写。 B - token['folderid'] 文件夹ID C - token['page'] 邮件列表页数(初始页为0)

零起步5-CentOS7.6源码编译安装git-2.24.1

我是研究僧i 提交于 2019-12-25 00:43:37
安装 git-2.24.1 准备工作1: 下载安装包及相关依赖,git有几个依赖 openssl openssl-devel curl-devel expat-devel,已安装的不用重复安装 [root@localhost ~]# wget https://github.com/git/git/archive/v2.24.1.tar.gz [root@localhost ~]# yum install expat-devel openssl openssl-devel curl-devel -y 编译安装 [root@localhost ~]# tar zxvf v2.24.1.tar.gz [root@localhost ~]# cd git-2.24.1/ [root@localhost git-2.24.1]# make prefix=/usr/local/git all [root@localhost git-2.24.1]# make prefix=/usr/local/git install [root@localhost git-2.24.1]# cd .. 配置环境变量 ,添加git用户和组(禁用shell登录) [root@localhost ~]# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc

submine自定义快捷键,和运行py--注意事项

爱⌒轻易说出口 提交于 2019-12-24 18:35:09
(1)推荐用户绑定: 不要使用默认绑定 ,默认绑定方便查找对比org (2)运行py ctrl+B (3)用户绑定直接重写: 用户绑定如下: [ { "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} }, { "keys": ["ctrl+down"], "command": "duplicate_line" }, {"keys": ["alt+l"],"command": "toggle_setting","args":{"setting": "line_numbers"}}, ] (6)绿色免安装包要放在如下路径,不然打开方式加载不到: D:\Program Files\Sublime Text 3.3126x64 来源: CSDN 作者: knight-zhou 链接: https://blog.csdn.net/knight_zhou/article/details/103687424

爬虫之selenium使用

扶醉桌前 提交于 2019-12-24 13:00:59
详细使用链接: 点击链接 selenium介绍: selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种常见的浏览器 from selenium import webdriverbrowser=webdriver.Chrome()browser=webdriver.Firefox()browser=webdriver.PhantomJS()browser=webdriver.Safari()browser=webdriver.Edge() 官网: http://selenium-python.readthedocs.io 环境搭建 1.在python中使用selenium需要先安装对应的模块 pip install selenium 2.selenium的原理是操作驱动浏览器来完成对目标页面的请求与渲染,所以需要下载对应的浏览器驱动程序,推荐使用chrome 镜像地址: https://npm.taobao.org/mirrors/chromedriver/ 需要注意的是,驱动程序版本需要与浏览器版本对应,你可以打开chrome的关于浏览器查看到具体版本。 驱动与浏览器的版本对应关系

python3 字典(dict)基础

喜欢而已 提交于 2019-12-24 10:58:13
1、定义及初始化 1.1、直接初始化 info = { "stu1101": "jack", "stu1102": "tom", "stu1103": "mary", } print(info)   打印输出结果: {'stu1101': 'jack', 'stu1102': 'tom', 'stu1103': 'mary'} 1.2、先定义后赋值 records ={} records["stu1101"] = 90 records["stu1102"] = 80 records["stu1103"] = 70 print(records)   打印输出结果: {'stu1101': 90, 'stu1102': 80, 'stu1103': 70} 2、方法 2.1、setdefault()   设置默认值。 2.2.1、对新的key设置默认值 info = { "stu1101": "jack", "stu1102": "tom", "stu1103": "mary", } info.setdefault("stu1100", "robin") print(info)   打印输出结果: {'stu1101': 'jack', 'stu1102': 'tom', 'stu1103': 'mary', 'stu1100': 'robin'} 2.2.2

PHP递归获取二维数组中指定key的值

痴心易碎 提交于 2019-12-24 08:07:20
$data = [ "resulterrorCode" => 0, "resultraw" => [ "result" => "ok", "trace_id" => "Xdm00694540804871731h0", "code" => 0, "data" => [ "id" => "tdm006945408048717384T", ], "description" => "成功", "info" => "Received push messages for 1 TOPIC" ], ]; echo "<pre>"; var_dump($data); function getDeepValue($array, $keys, $delimiter = '.') { $keys = explode($delimiter, $keys); $key = array_shift($keys); if (sizeof($keys) > 0 && isset($array[$key])) { return get_deep_value($array[$key], implode($delimiter, $keys), $delimiter); } else { return $array[$key] ?? null; } } $res = getDeepValue($data,

selenium模块

丶灬走出姿态 提交于 2019-12-24 00:19:16
一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium import webdriver browser=webdriver.Chrome() browser=webdriver.Firefox() browser=webdriver.PhantomJS() browser=webdriver.Safari() browser=webdriver.Edge() 官网:http://selenium-python.readthedocs.io 二 安装 #安装:selenium+chromedriver pip3 install selenium 下载chromdriver.exe放到python安装路径的scripts目录中即可,注意最新版本是2.29,并非2.9 国内镜像网站地址:http://npm.taobao.org/mirrors/chromedriver/2.29/ 最新的版本去官网找:https://sites.google.com/a/chromium.org/chromedriver/downloads #验证安装 C:

同步中的四种锁synchronized、ReentrantLock、ReadWriteLock、StampedLock

巧了我就是萌 提交于 2019-12-23 17:48:33
1.前言 锁就像一把钥匙,需要加锁的代码就像一个房间。出现互斥操作的典型场景:多人同时想进同一个房间争抢这个房间的钥匙(只有一把),一人抢到钥匙,其他人都等待这个人出来归还钥匙,此时大家再次争抢钥匙循环下去。 作为终极实战系列,本篇用java语言分析锁的原理(源码剖析)和应用(详细代码),根据锁的作用范围分为:JVM锁和分布式锁。如理解有误之处,还请指出。 2.单JVM锁(进程级别) 程序部署在一台服务器上,当容器启动时(例如tomcat),一台JVM就运行起来了。本节分析的锁均只能在单JVM下生效。因为最终锁定的是某个对象,这个对象生存在JVM中,自然锁只能锁单JVM。这一点很重要。如果你的服务只部署一个实例,那么恭喜你,用以下几种锁就可以了。 1.synchronized同步锁 2.ReentrantLock重入锁 3.ReadWriteLock读写锁 4.StampedLock戳锁 由于之前已经详细分析过原理+使用,各位直接坐飞机吧: 同步中的四种锁synchronized、ReentrantLock、ReadWriteLock、StampedLock 3.分布式锁(多服务节点,多进程) 3.1基于数据库锁实现 场景举例: 卖商品,先查询库存>0,更新库存-1。 1.悲观锁: select for update(一致性锁定读) 查询官方文档如上图,事务内起作用的行锁

ssh免密码登陆

▼魔方 西西 提交于 2019-12-22 16:09:27
一、查看系统安全日志,定位问题 执行 sudo cat /var/log/secure 查看系统的安全日志,然后再安全日志中看到SSH登录过程中提示了如下错误: serverA 免密码登录到 serverB 机器A 向 机器B 进行免密码登陆 step1: 在机器A中 命令:ssh-keygen -t rsa,一路回车就行,如果需要passphrase密码,自行输入就行,一路回车passphrase密码为空 此时在 ~/.ssh/ 目录下生成了公钥(id_rsa.pub)和私钥(id_rsa) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- step2: 把机器A的公钥(id_rsa.pub)复制到机器B ~/.ssh/authorized_keys 文件里,两种常用方法 方法1: scp ~/.ssh/id_rsa.pub username@host:/home/B/id_rsa.pub /