思路: 定义一个fast和一个slow,fast每走两步,slow就走一步, 最终返回的slow就是中间的值(链表的节点个数为奇数偶数都适用) 代码示例: class ListNode {...this.next = null; } } public class TestDemo1025_1 { public ListNode head; //给定一个头结点为...head 的非空单链表,返回链表的中间结点。...//如果有两个中间结点,则返回第二个中间结点。
如果一个国家满足下述两个条件之一,则认为该国是 大国 : 面积至少为 300 万平方公里(即,3000000 km2),或者 人口至少为 2500 万(即 25000000) 编写一个 SQL 查询以报告
如果一个国家满足下述两个条件之一,则认为该国是 大国 :面积至少为 300 万平方公里(即,3000000 km2),或者人口至少为 2500 万(即 25000000)编写一个 SQL 查询以报告 大国
如果是数字则代表直接从顶部开始跳过指定行数,0的话代表不跳过,如果是条件,则从头开始跳过满足条件的行直到不满足条件为止;返回的是表格形式。...第3参数代表如果需要返回的列不存在需要怎么样的操作(出错0或者空1,空值2),默认0出错;返回的也是一个表格形式。...,代表为空,代表所选择的是空列表。...Table.SelectColumns(源,"学",2)= 解释:因为第3参数为2,代表空值列表,返回列但是值都为空值。...Table.SelectColumns(源,{"学科","学"},2)= 解释:因为第3参数是2,代表如果没找到,就返回一个空值列表,所以返回了一个找到的学科列表以及一个未找到的学的列表,但是学的列表内容为空值
比如过滤内核为Linux的主机可以写成'kernel:Linux',如果同时需要正则表达式的支持可以切成--grain-pcre参数来执行。...如下配置的组信息(主机信息支持正则表达式、grain、条件运算符等),通常根据业务类型划分,不同业务具备相同的特点,包括部署环境、应用平台、配置文件等。.../master ....... nodegroups: web1group: 'L@minion-192-168-1-102,minion-192-168-1-118' //前面空两格...,冒号后面空一格 web2group: 'L@minion-192-168-1-102' 其中: L@ 表示后面的主机id格式为列表,即主机id以逗号隔开; G@ 表示以grain格式描述...示例:探测minion-192开头并且操作系统为Centos的主机连通性。
grains是saltstack重要组件之一,重要作用是收集被控主机的基本系统信息)进行匹配过滤,格式为':'。...比如过滤内核为Linux的主机可以写成'kernel:Linux',如果同时需要正则表达式的支持可以切成--grain-pcre参数来执行。...如下配置的组信息(主机信息支持正则表达式、grain、条件运算符等),通常根据业务类型划分,不同业务具备相同的特点,包括部署环境、应用平台、配置文件等。...1.7 探测 salt 开头并且操作系统为 Centos 的主机连通性 -C:--compound 根据条件运算符not、and、or去匹配不同规则的主机信息。...True saltstack_web1group_2: True 复制代码 1.8 探测非 saltstack 开头的主机连通性 not语句不能作为第一个条件执行,不过可以通过以下方法来规避:
传统运维工作繁琐,容易出错。 传统运维每日重复做相同的事情。 传统运维没有标准化流程。 传统运维的脚本繁多,不能方便管理。 自动化运维就是要解决上面所有问题。...hosts,zhdy01,zhdy02 vim /etc/hosts //增加如下: 192.168.59.131 zhdy01 192.168.59.138 zhdy02 当然你也许会有疑问,如果我们管理的是成千上万台机器...salt-minion //zhdy02上启动: # systemctl start salt-minion # ps aux | grep salt 服务端监听4505和4506两个端口,4505为消息发布的端口...,4506为和客户端通信的端口。... protected] minions]# salt-key Accepted Keys: Denied Keys: Unaccepted Keys: Rejected Keys: 然后再次去添加:(出错了
saltstack 常用命令 查看所有的KEYS salt-key –list-all 接受一个特定的钥匙 salt-key –accept=key-name salt-key –accept-all...git.latest: - name: https://github.com/saltstack/salt-bootstrap - rev: develop - target:...{ pillar['ftppassword'] }} -p 22 sftp://example.com;mirror -c -R /local /remote" 依赖关系 必需条件允许您明确指定状态中的...如果添加一个表示id1需要id4的语句,则首先应用id4。...salt ‘zabbix.aniu.so’ state.show_sls init.git env=base JINJA Jinja最常见的用途之一是将条件语句插入Salt柱文件。
在使用sql时如果不熟悉或不仔细,那么在进行查询分析时极容易出错,接下来我们就来看下几个容易出错的sql语句及使用注意事项。...9位,则这个字段就会变成null,如果整数部分不超过9位,则原字段显示; 如果小数部分不足2位,则后面用0补齐两位,如果小数部分超过两位,则超出部分四舍五入; 也可直接写 decimal,后面不指定位数...值,统计所有行数; count(id) 不包含id为 null 的值; min 求最小值是不包含 null,除非所有值都是 null; avg 求平均值也是不包含 null。...如上sql:如果dis_amount不为空,则返回dis_amount,如果为空,则返回0 小于是不包含 null 值,如 id \< 10;是不包含 id 为 null 值的。...not in 是不包含 null 值的,如 city not in ('北京','上海'),这个条件得出的结果是 city 中不包含 北京,上海和 null 的城市。
Saltstack的配置管理---State状态模块 Salt通过State模块来进行文件的管理;通过YAML语法来描述,后缀是.sls的文件 。...每行包含函数参数的行都以两个空格缩进开头,然后是连字符,然后是一个额外的空格。 如果参数采用单个值,则名称和值位于由冒号和空格分隔的同一行中。...如果一个参数需要一个列表,则列表从下一行开始,并缩进两个空格 1.2 配置salt,定义环境 告诉salt去哪里找配置状态文件 首先定义环境目录,file_roots; 其次创建上面定义的目录; 最后重启服务...vi /etc/salt/master image.png 以上为默认file_roots信息,创建如下内容(其中base目录是必须的): image.png mkdir -p /srv/salt/{...(主机名建议采用-,而不是_,为的就是后期主机名做DNS解析就麻烦了。)
存在' || echo '不存在' 存在 [root@zabbix01 ~]# [ -w /etc/shadow ] && echo '存在' || echo '不存在' 存在 # 5.判断文件是否为空...---- 字符串表达式 表达式 含义 举例 -n not null 非空则成立 test -n 'zls' -z null 空则成立 test -z 'zls' "str1" = "str2" 等号左边字符串与右边字符串相等则成立...&& 与 -a || 或 -o and条件 只有都为真,条件才为真,条件中有任何一个为假,那么结果就是假。...逻辑符号 条件1 条件2 结果 -a 真 真 真 真 假 假 假 真 假 假 假 假 or条件 只要有一个为真,结果就是真,除非两个都为假,结果才是假。...逻辑符号 条件1 条件2 结果 -o 真 真 真 真 假 真 假 真 真 假 假 假 Shell 练习 企业面试题1 命令行中输入一个数字,如果数字是1,则输出1,如果是2则输出2,既不是1也不是
收集信息并手动将数据输入到配置管理工具的过程非常耗费精力,并且容易出错。准备服务器、收集配置信息以及配置和部署 Ceph 所需执行的步骤大致相同。但是,这种做法无法解决管理独立功能的需求。...是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。...段落采用任意顺序,但所包含行的内容将重写前面行的内容中匹配的密钥。...如果您不想在 Ceph 群集中包含某些受控端,请使用: cluster-unassigned/cluster/*.sls cluster-ceph/cluster/node00*.sls 将所有受控端标记为未指派...如果您需要从群集中去除某个储存节点,则需要运行此阶段. DeepSea CLI DeepSea 还提供了一个 CLI 工具,供用户监视或运行阶段,同时实时将执行进度可视化。
SaltStack 具备配置管理、远程执行、监控等功能,一般可以理解为是简化版的 Puppet 和加强版的 Func。...SaltStack 客户端(Minion)在启动时,会自动生成一套密钥,包含私钥和公钥。之后将公钥发送给服务器端,服务器端验证并接受公钥,以此来建立可靠且加密的通信连接。...并通过 Yum list 命令来校验安装源是否生效,如出现图 4 所示,则表明Yum源已经生效。 ?...我们可以通过 salt ‘*’ test.ping 来测试客户端是否在线,并被 master 管理,如图 12 所示,如果返回 True,则说明客户端已经被 master 管理,并处于在线状态。...通过以上两个测试,可以验证 SaltStack 可以正常的为云平台提供集中化的管理与配置功能。
IT运维从诞生发展至今,自动化作为其重要属性之一已经不仅仅只是代替人工操作,更重要的是深层探知和全局分析,关注的是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。...传统运维的缺陷: 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问题。...Saltstack(官网 https://saltstack.com,文档docs.saltstack.com )基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷...---- 24.2 saltstack安装 saltstack的官方介绍文档: https://docs.saltstack.com/en/latest/topics/index.html saltstack...minion在第一次启动时会在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub为公钥,我们需要把公钥传输给master。
#吊销的key #常用参数 -L #查看KEY状态 -A #允许所有 -D #删除所有 -a #认证指定的key -d #删除指定的key -r #注销掉指定key(该状态为未被认证...每行包含函数参数的行都以两个空格缩进开头,然后是连字符,然后是一个额外的空格。 如果参数采用单个值,则名称和值位于由冒号和空格分隔的同一行中。...如果一个参数需要一个列表,则列表从下一行开始,并缩进两个空格 2、配置sals ,定义环境 参考文档 ?...当前有效 providers : //指定模块对应的providers, 如在RHEL系列中, pkg对应的providers 是yumpkg5 renderer: //指定配置管理系统中的渲染器(默认值为:...yaml_jinja ) file_client : //指定file clinet 默认去哪里(remote 或local) 寻找文件(默认值为remote) loglevel: //指定日志级别(默认为
参考学习网站 动态sql目的是为了解决查询条件不确定而存在的,条件判断使用的表达式为OGNL 表达式,常用的动态SQL有: 注意 在 mapper...因为,若 where 后的所有 条件均为 false,而 where 后若又没有 1=1 子句,则 SQL 中就会只剩下一个空的 where,SQL 出错。...,可以包含多个 与一个 。...本例要完成的需求是,若姓名不空,则按照姓名查询;若姓名为空,则按照年龄查询;若没有查询条件,则没有查询结果。 ids 那么collection就需要些list 如果传递的参数为Long[] ids 那么collection就需要些array package shop.tbzj.test
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression...); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。...,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败,如: 不好: assert(nOffset>=0&& nOffset+nSize<=m_nInfomationSize); ...,会使用程序在真正运行时遇到问题,如: 错误: assert(i++<100); 这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。 ...正确: assert(i <100); i++; 4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感。 5)有的地方,assert不能代替条件过滤。
领取专属 10元无门槛券
手把手带您无忧上云