V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ps1aniuge  ›  全部回复第 23 页 / 共 26 页
回复总数  518
1 ... 15  16  17  18  19  20  21  22  23  24 ... 26  
2019-02-21 14:32:44 +08:00
回复了 ps1aniuge 创建的主题 分享创造 分享我编写的 powershell 脚本: ssh-copy-id.ps1
你的脚本跟 ssh-copy-id 干的本来就是两件事 ---我看是同一件事哦。

你知道不安全还自己开发明文密码的脚本吗?---这个脚本只做了 ssh keyfile 免密自动化。
你用 new-pssession + 密码 连接远程,还是得输入密码。
你用 new-pssession + keyfile 连接远程,本身就是安全的。
并没有降低,ssh 远程的安全级别。
2019-02-20 15:36:39 +08:00
回复了 zh584728 创建的主题 程序员 读取大文件,几百 G 的那种,怎样建立索引来提高读取速度
支持 4 楼。导入数据库,分字段,按字段索引。打散数据=结构清晰。不打散=一团乱麻。
使用 powershell,python 没有命令行。py 在系统运维脚本这块,弱于 powershell。

使用 powershell,bash 参数 tab 补全,太 tm 麻烦。属性补全不行,python 没有参数不全。go 没有参数补全,或者说 go 参数补全依赖于 bash。

使用 powershell,支持强类型,shell 不行。使用 powershell 的 yaml 模块,读取.yaml 配置文件。
操作文件----自己的特长。
访问数据库---通过如 mysql 客户端,或 mysql 的。net 的 dll。
消息队列---通过如客户端,

支持中文脚本名,参数名,别名。猪都能懂。 如:dq 读取 xxx.ps1 -队列
入群技术支持:183-173-532

问:目前哪些 linux 能安装上 powershell ?
答:
◦Windows 10 IoT Core(arm32 的 cpu,本质上是 win,树莓派硬件上的 win10)
◦Raspbian Stretch(arm32 的 cpu,树莓派官方操作系统 Raspbian,基于大便,所以叫树莓便。)
◦MAC OS X 10.11
◦Ubuntu 14.04/16.04/18.04
◦Debian 8.x/9.x
◦CentOS 7.x/RHEL 7.x/Fedora26 及更高版本
◦open SUSE 42 及以上 /SUSE Linux Enterprise Server 12 SP2 及以上
◦Docker。LINUX 发行版中,安装容器 dockerd,docker 中运行 powershell。
◦Arch Linux ( arch linux 没有版本号)
◦Linux AppImage 容器(portable application single binary) https://github.com/probonopd/AppImageKit
◦Kali Linux
◦alpine Linux
2019-02-07 18:04:03 +08:00
回复了 fox 创建的主题 随想 结束 4 年日本生活,回国后几个月的感受
请问:
倭国现在还有,男女共浴么(钱汤)?
楼主去过么?最年轻的女士看起来多大岁数?谁谈谈?
2019-01-26 23:56:26 +08:00
回复了 ywgx 创建的主题 全球工单系统 腾讯云最近真的让人非常失望
有人想学 powershell 脚本么? win,linux,mac,树莓派通用。入群免费教:
183-173-532
2019-01-20 23:34:00 +08:00
回复了 jicg 创建的主题 Go 编程语言 golang 声音播放的初探
楼主想让电脑播放 “ txt 字符串”中的中文声音么?
powershell 姥姥 语音
https://www.cnblogs.com/piapia/p/8406170.html
$数组 = 1..100
while ($true)
{
$a,$b,$c,$d,$e,$f,$g,$h,$i,$j = Get-Random -InputObject $数组 -Count 10
$和 = $a + $b + $c + $d + $e + $f + $g + $h + $i + $j
if ($和 -lt 120)
{
Write-Host "$a $b $c $d $e $f $g $h $i $j $k"
}
}

上面的 powershell 代码,设定值小于 120 时 ,5 分钟没出结果。
我估计 -eq 100 得一年才能出结果。而设定 -lt 200 很好出结果,大家可以试试。
2018-12-27 16:39:38 +08:00
回复了 lolcat 创建的主题 Linux shell 脚本中 for 循环异常终止的问题
shell 中的坑,幺蛾子,隐藏的问题太多。powershell for linux 没这种问题。
set +o noglob
touch /tmp/a1log
A="/tmp/a*log" ;echo $A
#返回 /tmp/a1log

B='/tmp/a*log' ;echo $B
#返回 /tmp/a1log
2018-12-24 14:27:30 +08:00
回复了 wispx 创建的主题 职场话题 因为某天晚上未加班,延长一个月试用期。
黄世仁啊,黄世仁!
黄世仁啊,黄世仁!
黄世仁啊,黄世仁!
黄世仁啊,黄世仁!
黄世仁啊,黄世仁!
2018-12-18 12:42:11 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
powershell 脚本中使用 [中文脚本名] 的意义:
脚本太多。不用中文找不到脚本。用中文都不好找。 [nd 你的文件已经被黑客篡改.ps1] 用前两个字母 +tab 键即可补全执行。

powershell 脚本中使用 [中文变量名,参数名,函数名] 的意义:
适合于初学者,适合于他人理解修改。
"brother"是哥哥还是弟弟?"3 顾茅庐"又如何翻译成英文?

以阿里-----云为例,若其 api 命令行的参数都是中文,则会极大提升用户效率。
如:
xj 新建虚拟机.sh -cpu 个数 2 -cpu 核心 max

#对于 powershell 完全何以实现。
xj 新建虚拟机.ps1 -cpu 个数 2 -cpu 核心 max

--------------------
xj 新建虚拟机.ps1

param
(
$cpu 个数
$cpu 核心

)
--------------------
此处围观,真实 powershell 脚本,win 下用的 powershell 脚本,验证文件的数字签名是否被更改
https://www.v2ex.com/t/481876

powershell 脚本文本文件,支持 bom 头,只要作者写好带有 bom 头的脚本,传播过程绝不会乱码。
连 linux 的 vi 都支持。这点比 python 强。

结论,powershell 中文变量编程,完全可行!稳定!容易理解!
脚本修改者,使用者,就是楼主说的,“非专业程序员”他们用中文确实更好!
用法:
在 linux 的 bash 中,用我分享的 powershell 脚本的方法:(需要先安装 linux 版 powershell )
/usr/bin/pwsh -f "fz 翻转字符串.ps1" -输入字符串 'abcd'



#建议保存编码为:bom 头 + utf8
param
(
[string]$输入字符串
)

$b = $输入字符串.tochararray()
[System.Array]::Reverse($b)
$c = [system.String]::Concat($b)
return $c
$列 3 被 V2EX 人为分词了,不怪我
#建议保存编码为:bom 头 + utf8

$输入文件 = 'a:\pscode\TEMP_2018\temp207\aaa.txt'
$输出文件 = 'a:\pscode\TEMP_2018\temp207\aaa2.txt'

function 翻转函数($a)
{
$b = $a.tochararray()
[System.Array]::Reverse($b)
[string]$c = [system.String]::Concat($b)
return $c
}

$所有行 = Get-Content -LiteralPath $输入文件 -ReadCount 0
$输出的所有行 = @()
foreach ($行 in $所有行)
{
$列 = $行.split(' ',[System.StringSplitOptions]::RemoveEmptyEntries)
$列 1 = 翻转函数 $列[0]
$列 2 = $列[1].replace('name=S:','').trimend(',')
$列 3 = $列[3].replace('value=','')
$新列 = $列 1,$列 2,$列 3 -join ' '
$输出的所有行 += $新列
}
Set-Content -LiteralPath $输出文件 -Encoding UTF8 -Value $输出的所有行

powrshell 代码,win,linux 通用。
源文件不要有尾部空行。
测试通过。
2018-11-29 01:56:07 +08:00
回复了 yuedingwangji 创建的主题 Linux Linux 如何快速拷大量文件, cp 是单进程的?
rsync 需要安装,若是 win,winscp 最简单。支持多线程。
在选项===》传输===》后台里设定。
具体多少线程,根据 **基本跑满服务器带宽,不怎么波动** 为准。
2018-11-27 15:26:03 +08:00
回复了 564425833 创建的主题 职场话题 钉钉不是一种工作方式,是一个帮助企业压榨员工的舔狗
1 开发一款云考勤软件(服务)带有定位功能。带有输入工作日志功能,即今天干了啥活。
2 找到工会帮忙鉴定可靠性。
3 让客户(雇员)偷偷使用。让客交钱。
4 客户离职时,作为证据。
2018-11-22 10:25:06 +08:00
回复了 yasumoto 创建的主题 职场话题 惨痛的教训 同事讨论薪资被降薪了....
即使是同样的职位,工资也是不同的(即使你能干,工资也有可能比别人低)
薪酬保密是 [资本家] 推出的不公平制度!要掩盖职场中的潜在的不公平。
不应该被 [工人] [工会] 遵守,推广!

你比别人干的多,吃的(薪水)少,帮公司保密?有啥好处?

建议薪水少的人:
1 不要卖同事!不要牵连同事!不要牵连同事!
2 过段时间!
3 私底下找经理,hr 谈涨工资的事。
4 不涨可以怠工,可以走人。不要牵连同事。
2018-11-10 14:55:29 +08:00
回复了 goodryb 创建的主题 硬件 入了一个 NAS 已经在路上了,想问下关于硬盘的问题
原来 zf 是🈲词。
为啥企业用 raid5 可靠?而家用 raid5 不可靠。非要用 raid1 ?

楼主若用 3 块硬盘。或 4 块硬盘。还有人会说 raid1 么?
2018-11-10 14:54:50 +08:00
回复了 goodryb 创建的主题 硬件 入了一个 NAS 已经在路上了,想问下关于硬盘的问题
可以说 raid5 是银行,政&府。医院,证券,天气预报,云计算的必备,甚至是这世界的基石。
2018-11-10 14:54:22 +08:00
回复了 goodryb 创建的主题 硬件 入了一个 NAS 已经在路上了,想问下关于硬盘的问题
本年度最牛的存储企业是谁?答:dell-and-emc,人家也是用 raid5。或衍生出的 raid50,raid6。这些都可以看作 raid5。
2018-11-08 17:19:05 +08:00
回复了 baiyun888 创建的主题 Linux 求介绍 windows 下批量管理 Linux 的软件
问:powershell 经过 ssh,远程运行命令,比 bash 强在哪?
答:
=============linux 远程命令 & ps 远程命令 对比例子============
linux:
ssh [email protected] "以用户 aaa 权限执行的,命令 xxx"

ps:
$a = 1
[scriptblock]$备份命令 =
{
Get-Date
$b = $using:a + 2 #引用客户机变量,需要用$using:
}

$连接 1 = New-PSSession -HostName 1.1.1.1 -UserName root #手动输入密码或用-KeyFilePath 选项
invoke-command -ScriptBlock { $备份命令 } -Session $连接 1
============================================================
bash 的远程命令,简单直接。就好像我左手这盘蛋炒饭,简单解饿,但是不够强。更适用于 简单远程命令场合。
你再看看我右手这盘盖饭好在哪?答:生菜垫底,萝卜雕花围边。
bash 远程传递的是 [字符串] ,powershell 传递的是 [代码块] 。特色是 [对象垫底,大花括号围边] 。

字符串传递到远程时,经常需要要转义。代码块不用。
代码块,支持多行,格式化,使代码美观。
变量名,函数名支持中文。

代码块中,支持引用客户端变量,一律加上 [$using:] ,即客户机上的 [$a] ,在服务器上叫 [$using:a]
代码块中,支持引用服务器端变量,即服务器上的 [$a] ,在服务器还上叫 [$a]
即使变量重名,两个$a 也绝不会弄混。

ps 用大花括号包围代码,不用单双引号,代码嵌套很容易。
而代码嵌套容易,使的 ps 的 ssh 远程,从 server1 (跳板机,堡垒机)经 ssh 进入 server2,再 ssh 进入 server3,进入 33 层 ssh server 执行命令很容易。而 shell 难。

远程代码天生不老稳定的,有时没反应,或卡住,或中途断了。遇到此情形,每行 ps 代码都可以在外面套上 try-cacth,比 shell 更稳。

批量 ssh,ps 采用 [多线程] ,比 bash 用 [多进程] 快,时间准,省内存。



问:本地脚本和远程脚本有何区别?如何编写远程脚本?
答:
由于下述限制颇多,顾应尽量少用 [直接] 远程调用。多用 [进入远程机子后] 的本地调用。

1 模块化。要把远程任务,分成 n 个独立的单元。
我们编写的本地脚本,有时候没分的这么清楚。但远程脚本,就要分成 n 个脚本,或 n 个函数。

2 每个单元让它返回$true,或 false。
我们要改造本地脚本,人为让每个单元能返回$true,或 false。
好让我们远程判断每个单元是否执行成功。

3 对于偶尔会失败的任务,根据上述返回$true,或 false,把脚本改造成,有一定循环次数。
令脚本的每个单元,都让它形成闭环。
本地脚本中的本地命令,大都是不报错即成功。
对于 bash 这就尴尬了,癌症无解。powershell 有 try+catch 解决这问题。

4 每个单元让它,在远程机子上,写入 log。log 中带上日期时间。

5 每个单元,甚至!每个命令,必须!设定超时时间。

郭德纲说过,远程脚本,天生不老稳定的;)
本地脚本中的本地命令,大都不具备超时选项,远程运行时卡住就完了。
解决这个问题的最佳实践,是用多线程,和计时器。

把单元放入后台线程,然后主线程 sleep n 秒。超时就 kill 掉。
这是笨办法,好在简单,bash 也能实现。但 bash 没有线程,只有进程。

powershell 中,无需使用此笨办法。powershell 有计时器。计时器是多线程的。
new 一个计时器对象,并绑定代码后,你就可以-开始计时器-停止计时器-调整计时周期。

现在我们假定一个任务,前 3 次必然卡住超时,第 4 次必然成功。
那么我们只需在任务代码中,加上停止计时器的代码。并启动计时器即可。

则前 3 次运行到卡住代码,超时后被计时器重启。最后 1 次通过了卡住代码,运行了计时器停止代码。

这涉及到了两个线程之间传值,和控制。
而 bash 多进程,进程之间传值控制,不如线程之间方便。
所以说 [多线程,计时器,是给命令加上超时选项的最佳实践] 。

这里面还有一个细节。若你用 ps 的远程线程,来运行 [代码单元] 。可以起一个线程名,作为超时 kill 的标识符。
但是对于 bash,就不能用进程名了。你需要一个标明进程是唯一的方法。
这种方法是有,但是又要加不少代码。在这里就不做展开详谈了。
1 ... 15  16  17  18  19  20  21  22  23  24 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   764 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 22:00 · PVG 06:00 · LAX 15:00 · JFK 18:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.