卡住你3000简介:
名词解释:
批量顺序复制文件:从主控到被控1,被控2,复制文件。卡住问题。
批量复制文件:从主控到被控1,被控2,复制文件。并发数可以通过多线程并发来控制。并发复制,解决单线程卡住问题。
3000复制文件命令卡的命令:
kct, k copy files to 被控机。kcf。 k copy files from 被控机。
命令系统需求:支持上述两个命令win,linux,mac,使用树莓派;
命令依赖卡住你3000,依赖nodelist.csv;
需要安装被控机powershell;
对于linux不支持密码连接的被控机需要建立ssh-keyfile,并做免密。
使用场景:
推送安装包.sh脚本,推送.py脚本。
主要复制文件的说明:
1卡住你3000,支持从win复制文件到win,支持从linux复制文件到linux,支持从win,linux任意复制文件。还支持mac,树莓派。
2 将文件从主控机的自定义目录复制到被控机的自定义目录。『主控机(孙权)嫁妹,孙尚香.jpg,给被控机(刘备)』kct #从主控机到被控机复制文件
3 将文件从被控机的自定义目录复制到主控机的自定义目录。『蒋干偷书,本来想劝降东吴。但从东吴(被控机)盗回假投降书.jpg』kcf #从被控机到主控机复制文件
参数:
[String]$LiteralPath, #不支持[ ]* ? 源目录[String]$Path,源目录[String]$Destination,目标目录[Switch]$Recurse 递归,
问:和scp有啥不同?答:1可限制并发任务数。用户自己的基础cpu核心数,网卡io,磁盘io,调整并发数。2scp有癌症,主控机,被控机必须安装scp。卡死你3000复制文件linux被控机基于sftp,不需要安装被控机scp。
例子:
问:如何从【主控机】到【被控机】复制文件?答:非并发复制
$1组ip = '1.2.3.4','5.6.7.8'
# $1组ip = get-content /root/ip.txt #一行一个ip
foreach ($ip in $1组ip)
{
cdip $ip
kct.ps1 -LiteralPath 'c:\\控制机源目录' -Destination '/tmp/被控机目标目录' -Recurse #从主控机,复制被控机的文件
}
问:如何从【被控机】到【主控机】批量复制文件?答:非并发复制
$1组ip = '1.2.3.4','5.6.7.8'
# $1组ip = get-content /root/ip.txt #一行一个ip
foreach ($ip in $1组ip)
{
cdip $ip
kcf.ps1 -LiteralPath 'c:\\被控机源目录' -Destination 'd:\\主控机目标目录' -Recurse #从被控机,将文件复制到主控机
}
被控机之间的同步主控机【node_script】目录:
【node_script】目录是主控机-被控机之间的公共目录,从主控机中提供文件【node_script】目录,复制到被控机【node_script】。cdip 192.168.1.2 #选择被控机kctf复制主控机node_script目录脚本到当前被控机.ps1
并发复制:
问:【主控机】,【被控机】为什么复制文件是非并发?cdip 192.168.1.2 #选择被控机kctf复制主控机node_script目录脚本到当前被控机.ps1
并发复制:
问:【主控机】,【被控机】为什么复制文件是非并发?答:我没有开发复制文件的功能,所以我害怕1000台并发卡死主控机。因此,应使用以下文件,类似于手动并发复制。这种方法方便写脚本的人控制并发数量。
问:编写脚本时如何控制主控并发任务数?被控机并发任务数如何控制?答:1 卡住你3000,默认多流程并发任务数限制99。并发数不限于多线程。这两个基本上不用于单个用户任务。不建议用户限制并发。2 用户级主控机、被控机、任务。powershell v7版及以上。提供此命令。这是多线程并发。
$多线程外值_传输到线程 = 123$1组ip = '1.2.3.4','5.6.7.8'# $1组ip = get-content /root/ip.txt #一行一个ip$1组ip | ForEach-Object -ThrottleLimit 5 -TimeoutSeconds 60 -Parallel{kct.ps1 -LiteralPath 'c:\\控制机源目录' -Destination '/tmp/被控机目标目录' -Recurse #从主控机,复制被控机的文件
这里调用函数,必须在这里定义。外部不能定义。外部无法定义。因为这是一个单独的线程。不支持执行代码块。支持脚本调用。
$c1 = $using:多线程外值_传输到线程 #变量应先克隆到线程,然后计算
}
并发复制,非并发复制,只有一行代码不同。-ThrottleLimit 5 #限制并发数 -TimeoutSeconds 60 #超时
复制文件命令:k_copyto_ip_port_winscp2bash_user_pwd.ps1
默认是,复制子目录
参数:
【ipaddress】-->【目的ip地址】【port】-->【端口】【user】-->【用户名】【pwd】-->【密码】【LiteralPath】主控机上的文件目录【Destination】被控机上的文件目录
k_copyfrom_ip_port_winscp2bash_user_pwd.ps1默认是,复制子目录 参数【ipaddress】-->【目的ip地址】【port】-->【端口】【user】-->【用户名】【pwd】-->【密码】【LiteralPath】被控机上的文件目录【Destination】主控机上的文件目录
命令系统要求:上述命令,只限于win使用;命令依赖powershell的winscp模块;命令不依赖卡住你3000,不依赖nodelist.csv,不需要ssh-keyfile,但需要单独输入ip,端口、账户、密码。
不需要安装被控机powershell。
其他独立的,复制文件命令:k_copyfrom_ip_port_w2l_user_expect_pwd.ps1k_copyto_ip_port_w2l_user_expect_pwd.ps1
命令系统需求:从win到linux密码自动输入;支持sudo提权;
需要安装被控机powershell
不需要ssh-keyfile
其他独立的,复制文件命令:k_copyto_ip_port_l2l_user.ps1k_copyto_ip_port_w2l_user.ps1k_copyto_ip_port_w2w_user_pwd.ps1k_copyfrom_ip_port_l2l_user.ps1k_copyfrom_ip_port_w2l_user.ps1k_copyfrom_ip_port_w2w_user_pwd.ps1命令系统要求:
不需要ssh-keyfile
主控机使用上述命令,不依赖卡死你3000,不依赖nodelist.csv,但是密码需要单独输入;没有pwd是的,会提示输入密码。带有pwd支持参数输入密码;
需要安装被控机powershell;谢谢观看,结束。带有pwd支持参数输入密码;需要安装被控机powershell;谢谢观看,结束。