我们在ELB后面运行一个ECS集群(ALB,具体而言).
我有一个流程允许我通过查询ALB并通过目标组追溯结果然后实例来找出哪个ECS群集与ALB相关联:
这是bash脚本:
ELB_NAME=$(aws route53 list-resource-record-sets --hosted-zone-id <Zone-ID> | jq -r --arg URL "$URL"'.ResourceRecordSets[]|select(.Name==$URL)|.AliasTarget.DNSName')
ELB_NAME=$(echo $ELB_NAME | cut -f 2- -d "." | rev | cut -f 2- -d "." | rev)
ELB_ARN=$(aws elbv2 describe-load-balancers | jq -r --arg ELB_NAME "$ELB_NAME" '.LoadBalancers[]|select((.DNSName|ascii_downcase)==$ELB_NAME)|.LoadBalancerArn')
TG_ARNS=$(aws elbv2 describe-target-groups | jq -r --arg ELB_ARN "$ELB_ARN" '.TargetGroups[]|select(.LoadBalancerArns[]==$ELB_ARN)|.TG_ARN=$(echo $TG_ARNS | cut -f 1 -d " ")
INSTANCE_ID=$(aws elbv2 describe-target-health --target-group-arn $TG_ARN | jq -r '.TargetHealthDescriptions[].Target.Id' | head -n 1)
CLUSTER=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID | jq …Run Code Online (Sandbox Code Playgroud) 我曾经能够很好地建立从我家到我工作机器(不同网络)jupyter 服务器的连接。它在没有任何明显原因的情况下停止工作。我的 MacBook 仍然可以连接,所以遥控器没问题。
我设置服务器:
jupyter notebook --no-browser --port=8887
然后我尝试转发:
ssh -N -L localhost:8887:localhost:8887 $user@$host
但这总是超时:
connect to host $host port 22: Connection timed out
通过 ssh 终端登录远程计算机工作正常。有什么想法如何找到问题吗?提前致谢。
在终端中的 bash 中,不可能运行以和 & 结尾的命令(被发送到后台)后跟另一个命令(显然它们之间有一个 ;)。这是为什么?为什么你不能用“&;”运行任何东西 或“$;” 在里面?
下面是这个问题的上下文。我正在尝试重新创建 502 错误并尝试对测试服务器中的特定页面进行 DoS。我试图运行这个:
while true; do curl -s https://some.site.com/someImage.jpg > /dev/null &; echo blah ; done
Run Code Online (Sandbox Code Playgroud)
作为终端中的“单线”。我收到此错误:
-bash: 意外标记附近的语法错误`;'
然而,这些命令是单独工作的,当我不在后台运行 curl 命令时,它也可以作为循环工作。当它编写一个单行脚本“/tmp/curlBack.sh”时它也可以工作,它只包含
curl -s https://some.site.com/someImage.jpg > /dev/null &
Run Code Online (Sandbox Code Playgroud)
然后运行
while true; do bash /tmp/curlBack.sh ; echo blah ; done
Run Code Online (Sandbox Code Playgroud)
所以重申一下,为什么不能用“&;”运行命令 在终端中,或者如果有可能如何实现?提前致谢。