tmp

利用nc当作备用shell管理方案.

谁说我不能喝 提交于 2019-11-29 12:10:21
ssh 有时候真的就是连不上了,然后是没什么然后了呢. 或者手残改错配置然后重新sshd了. 所以这时候需要备用的远程管理工具.nc是最好的选择,一般服务器都是 内网的,如果跳板机也管理不了呢. 安装 (服务端 客户端 都装) yum install nc -y apt install netcat -y 这里你需要知道的一些事情 理想中的 nc -l -vv -p 5555 -e /bin/bash 在Linux的大部分发行版中都默认编译了nc,但也许是出于安全考虑,发行版中默认编译的nc往往没有-e选项(没有define一个 GAPING_SECURITY_HOLE常量),也就是说我们不能通过-e选项绑定目标的shell,使得我们在利用上受到限制. # 绕过这个问题 mknod /tmp/backpipe p 2>/dev/null /bin/bash 0</tmp/backpipe | nc -l 127.0.0.1 -vnp 5000 >/tmp/backpipe 配置 #!/bin/bash mknod /tmp/backpipe p 2>/dev/null ps -C nc >/dev/null if [ $? -eq 1 ] ;then /bin/bash 0</tmp/backpipe | nc -l 127.0.0.1 -vnp 5000 >/tmp

模板 - 平面最近点对

冷暖自知 提交于 2019-11-29 11:14:55
分治算法,虽然每一层里面都排序,但实际上选出的点并不多。 #include<bits/stdc++.h> using namespace std; const double INF = 1e36; const int MAXN = 200000; int n, tmp[MAXN]; struct Point { double x, y; } S[MAXN + 5]; bool cmpx(const Point &a, const Point&b) { return a.x < b.x; } bool cmpidy(const int &a, const int &b) { return S[a].y < S[b].y ; } inline double min(const double &a, const double &b) { return a < b ? a : b; } inline double dist(const int &i, const int &j) { return sqrt((S[i].x - S[j].x) * (S[i].x - S[j].x) + (S[i].y - S[j].y) * (S[i].y - S[j].y)); } double merge(int left, int right) { double d = INF; if(left ==

xshell常用命令大全

久未见 提交于 2019-11-29 09:57:28
(1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件 (2)命令cp——复制文件 cp afile afile.bak 把文件复制为新文件afile.bak cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下 cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目录下 cp -a docs docs.bak 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项 cp -i 在覆盖前询问用户 cp -v 告诉用户正在做什么 (3)命令mv——移动和重命名文件 mv aflie bfile 将afile重命名为bfile mv afile /tmp 把当前目录下的afile移动到/tmp/目录下 (4)命令rm——删除文件和目录 rm afile 删除文件afile rm * 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。 rm -rf domed 删除domed目录以及它所包含的所有内容 rm -i a*

mysql 通过存储过程批量更新表数据

有些话、适合烂在心里 提交于 2019-11-29 08:41:08
方法一:使用临时表批量更新表数据 (注意操作用户需要有mysql的创建临时表权限) delimiter $$ # 删除 已有的 存储过程 DROP PROCEDURE IF EXISTS update_user_account_method; # 创建新的存储过程 CREATE PROCEDURE update_user_account_method() -- 批量更新HIK+手机号 BEGIN # 批量更新sx_为xs_ UPDATE sys_user t SET t.account = REPLACE (t.account,'sx_','xs_'); # 创建临时表 -- 不存在则创建临时表 create temporary table if not exists tmp(id bigint(20) primary key,ac varchar(20) not null) ; -- 使用前先清空临时表 truncate table tmp; # 查询HIK的账户数 SET @num=(SELECT COUNT(1) FROM sys_user WHERE account like concat('%','HIK','%')); # HIK的账户数大于0则执行 if @num>0 then insert into tmp(id,ac) SELECT user_id,random

Leetcode 1184:公交站间的距离

让人想犯罪 __ 提交于 2019-11-29 08:23:10
题目描述 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。 环线上的公交车都可以按顺时针和逆时针的方向行驶。 返回乘客从出发点 start 到目的地 destination 之间的最短距离。 示例 1: 输入:distance = [1,2,3,4], start = 0, destination = 1 输出:1 解释:公交站 0 和 1 之间的距离是 1 或 9,最小值是 1。 示例 2: 输入:distance = [1,2,3,4], start = 0, destination = 2 输出:3 解释:公交站 0 和 2 之间的距离是 3 或 7,最小值是 3。 示例 3: 输入:distance = [1,2,3,4], start = 0, destination = 3 输出:4 解释:公交站 0 和 3 之间的距离是 6 或 4,最小值是 4。 提示: 1 <= n <= 10^4 distance.length == n 0 <= start, destination < n 0 <= distance[i] <= 10^4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com

shell习题-26

荒凉一梦 提交于 2019-11-29 07:56:34
题目要求 写一个脚本,依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么,如: Hello, root,your UID is 0. 参考答案 #!/bin/bash #这个脚本用来问候用户 #作者:猿课-阿铭 www.apelearn.com #日期:2018-12-11 cat /etc/passwd |while read line do username=`echo $line|awk -F ':' '{print $1}'` uid=`echo $line|awk -F ':' '{print $3}'` echo "Hello, $username, your uid is $uid." done 题目要求 linux系统 /home目录下有一个文件test.xml,内容如下: <configuration> <artifactItems> <artifactItem> <groupId>zzz</groupId> <artifactId>aaa</artifactId> </artifactItem> <artifactItem> <groupId>xxx</groupId> <artifactId>yyy</artifactId> </artifactItem> <!-- </artifactItem><groupId>some groupId<

shell习题-21

霸气de小男生 提交于 2019-11-29 07:24:07
题目要求 写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项时,显示其指定ip所属的网卡。 例: sh getinterface.sh -i eth0 或者 sh getinterface.sh -I 192.168.0.1 3)当用户使用除[-i | -I]选项时,显示[-i interface | -I ip]此信息。 4)当用户指定信息不符合时,显示错误。(比如指定的eth0没有,而是eth1时) 有点小复杂,需要在多看看视频,现在还没有完全搞明白 参考答案 #!/bin/bash #将网卡名记录到文件ifs.txt中 ip add |awk -F ': ' '$1 ~ "^[1-9]" {print $2}' > /tmp/ifs.txt #一个函数 输入网卡名字获取ip get_ip() { ip add show dev $1 |grep inet |awk '{print $2}' |awk -F '/' '{print $1}' } #遍历网卡获取ip for eth in `cat /tmp/ifs.txt` do myip=`get_ip $eth` if [ -z "

JS中判断null、undefined与NaN的方法

柔情痞子 提交于 2019-11-29 07:11:04
写了个 str ="s"++; 然后出现Nan,找了一会。 收集资料如下判断: 1.判断undefined: 1 2 3 4 var tmp = undefined; if ( typeof (tmp) == "undefined" ){ alert( "undefined" ); } 说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 2.判断null: 1 2 3 4 var tmp = null ; if (!tmp && typeof (tmp)!= "undefined" && tmp!=0){ alert( "null" ); } 3.判断NaN: 1 2 3 4 var tmp = 0/0; if (isNaN(tmp)){ alert( "NaN" ); } 说明:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。 提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。 4.判断undefined和null: 1

JavaScript中判断null、undefined与NaN的方法

对着背影说爱祢 提交于 2019-11-29 07:10:52
1.判断undefined: ? 1 2 3 4 var tmp = undefined; if ( typeof (tmp) == "undefined" ){ alert( "undefined" ); } 说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 2.判断null: ? 1 2 3 4 var tmp = null ; if (!tmp && typeof (tmp)!= "undefined" && tmp!=0){ alert( "null" ); } 3.判断NaN: (NAN not a number) ? 1 2 3 4 var tmp = 0/0; if (isNaN(tmp)){ alert( "NaN" ); } 说明:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。 提示: isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字 。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。 4.判断undefined和null: ? 1 2 3 4 5

JS中判断null、undefined与NaN的方法

限于喜欢 提交于 2019-11-29 07:08:14
写了个 str ="s"++; 然后出现Nan,找了一会。 收集资料如下判断: 1.判断undefined: 代码如下: 1 <span style="font-size: small;">var tmp = undefined; 2 if (typeof(tmp) == "undefined"){ 3 alert("undefined"); 4 }</span> 说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 2.判断null: 1 <span style="font-size: small;">var tmp = null; 2 if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ 3 alert("null"); 4 } </span> 3.判断NaN: 1 <span style="font-size: small;">var tmp = 0/0; 2 if(isNaN(tmp)){ 3 alert("NaN"); 4 }</span> 说明:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。 提示:isNaN()