小编Sel*_*vel的帖子

Mercurial 转换文件名编码

我有使用 mod_wsgi 在 Apache 上运行的 Mercurial 存储库。存储库的所有文件名都以 windows-1251 编码。这种编码用于历史原因:它们从 svn 转换为 mercurial,windows-1251 是俄罗斯语言环境的默认 windows 编码。

现在程序员想要使用Crucible工具进行代码审查。它不能用除 utf-8 以外的任何其他编码对文件名进行undersand。所以我需要将它们从 windows-1251 转换为 utf-8。有谁知道如何做到这一点?Mercurial 转换扩展没有转换编码的选项。

hgweb.config:

[web]
#encoding = UTF-8
encoding = windows-1251
#allow_archive = gz, zip, bz2
allow_archive = zip
allow_push = *
push_ssl = false

[extensions]

[collections]
/data/mercurial = /data/mercurial
Run Code Online (Sandbox Code Playgroud)

mercurial encoding crucible

12
推荐指数
2
解决办法
4684
查看次数

Mikrotik 脚本中的错误处理

我在 RB493G 上安装了 RouterOS 5.14。我需要编写脚本,启动

/tool fetch ...
Run Code Online (Sandbox Code Playgroud)

执行 fetch 可能会导致错误,这是可以的(URL 有时可能不可用)。脚本因错误而挂起。有什么办法可以忽略它吗?


解决方案:

[admin@Mikrotik] >> /system script
0 name=safe-fetch source=
:global done
:global url

/tool fetch $url
:Set done=true

1 name=test source=
:global done
:global url="google.com"

:set done false
:execute safe-fetch
:local counter 0
:while ( $done != true && $counter < 10 ) do={
    :set counter ($counter+1)
    :delay 0.2
    }

if ($done = "true") do={
   :put "Fetch OK"
   } else={
   :put "Fetch ERROR"
   }
Run Code Online (Sandbox Code Playgroud)

警告:使用了未记录的 ":execute"。

scripting mikrotik

7
推荐指数
2
解决办法
7197
查看次数

nginx:结合 Expires 和 Cache-Control:不可变标头

nginxexpires指令设置 2 个标头,Expires并且Cache-Control

配置:

expires 1d;
Run Code Online (Sandbox Code Playgroud)

标题:

Expires: Tue, 24 Nov 2020 12:51:31 GMT
Cache-Control: max-age=86400
Run Code Online (Sandbox Code Playgroud)

我想保留Expires标题,但也设置Cache-Controlpublic, max-age=86400, immutable. 但这会产生双Cache-Control标头:

配置:

expires 1d;
add_header Cache-Control "public, max-age=86400, immutable"
Run Code Online (Sandbox Code Playgroud)

标题:

Expires: Tue, 24 Nov 2020 12:57:53 GMT
Cache-Control: max-age=86400
Cache-Control: public, max-age=86400, immutable
Run Code Online (Sandbox Code Playgroud)

我不能只使用add_header Expires ...,因为它需要未来的确切时间,而不仅仅是秒数。

我尝试使用more_set_headersngx_headers_more模块,但指令Cache-Control设置的标头expires仍然存在。

有没有办法将正确的Expires标头与Cache-Controlset to结合起来immutable

nginx

6
推荐指数
2
解决办法
3280
查看次数

PuTTY 将代理转发用于服务器链

我无法使用 PuTTY 配置 AgentForwarding :(

PuTTY 是最新的 0.61 版本。我为 PuTTY 创建了公钥/私钥对,将它们转换为 openssh 格式,将它们添加到 host1 和 host2 上的 /root/.ssh/authorized_keys。在 /etc/ssh/sshd_config 中的两台主机上:

PermitRootLogin without-password
AuthorizedKeysFile      %h/.ssh/authorized_keys
AllowAgentForwarding yes
Run Code Online (Sandbox Code Playgroud)

在两台主机上 /root/.ssh/config 包含

Host *
    ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

在 PuTTY 配置中,选项 Connection/SSH/Auth/Allow agent forwarding [x] 被选中。

当我使用加载的密钥文件运行 pagent.exe 时,我可以在没有密码的情况下连接到 host1 和 host2。但是当我连接到 host1 并尝试连接时ssh root@host2,系统会提示我输入密码。我的 host1 会话中未设置变量 $SSH_AUTH_SOCK。我究竟做错了什么?

ssh putty

4
推荐指数
1
解决办法
1万
查看次数

Linux qos:tc DRR qdisc 不起作用

有 tc 队列规则 DRR(Dificite Round Robin) 。

它具有与 HTB 相同的功能,但不使用填充令牌的桶,它只是为每个队列分配一些 Dificit Counter。在数据包发送 DC 减少数据包大小。如果 DC 小于数据包大小,则 DC 增加队列的量程并处理下一个队列。因此,它可以在不知道通道宽度(HTB 所需)的情况下按某种比例划分传出流量。见http://www.unix.com/man-page/linux/8/tc-drr/

设置:两台主机,172.16.1.1?172.16.1.2。

在第一台主机上,我们正在侦听流量:

nc -l 8111
nc -l 8112
Run Code Online (Sandbox Code Playgroud)

在第二台主机上,我们检查速度:

pv /dev/zero | nc 172.16.1.1 8111
pv /dev/zero | nc 172.16.1.1 8112
Run Code Online (Sandbox Code Playgroud)

现在速度是相等的(pv 是允许测量通过管道传输数据的速度的实用程序)。在第二台主机上添加 DRR(顶部的 HTB 用于模拟真实的通道速度限制):

tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc qdisc add dev eth0 parent 1:1 handle 2: drr
tc …
Run Code Online (Sandbox Code Playgroud)

linux qos tc

4
推荐指数
1
解决办法
1281
查看次数

cpio 在 Ubuntu Xenial 中错误地解压 initrd

我正在尝试解压 initrd 图像:

# file /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic: ASCII cpio archive (SVR4 with no CRC)
# mkdir /tmp/initrd; cd /tmp/initrd
# cpio -i -d -H newc --no-absolute-filenames -F /boot/initrd.img-4.11.0-14-generic
194 blocks
# ls -R
.:
kernel

./kernel:
x86

./kernel/x86:
microcode

./kernel/x86/microcode:
GenuineIntel.bin
Run Code Online (Sandbox Code Playgroud)

所以cpio 只提取./kernel存档的子目录。但在其中lsinitramfs显示更多文件:

# lsinitramfs /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
.
lib
lib/libnss_files.so.2
lib/cryptsetup

...

bin/egrep
init
run
Run Code Online (Sandbox Code Playgroud)

如何获取所有存档内容?

initramfs cpio

3
推荐指数
1
解决办法
3147
查看次数

Openvpn 插件 openvpn-auth-ldap 未绑定到 Active Directory

我正在尝试使用 openvpn-auth-ldap 插件配置 OpenVPN,以通过 Active Directory LDAP 授权用户。当我使用没有插件选项的相同服务器配置,并使用生成的客户端密钥和证书添加客户端配置时,连接成功,所以问题出在插件中。

服务器.conf:

plugin /usr/lib/openvpn/openvpn-auth-ldap.so "/etc/openvpn-test/openvpn-auth-ldap.conf"
port 1194
proto tcp
dev tun
keepalive 10 60
topology subnet
server 10.0.2.0 255.255.255.0
tls-server
ca ca.crt
dh dh1024.pem
cert server.crt
key server.key
#crl-verify crl.pem
persist-key
persist-tun
user nobody
group nogroup
verb 3
mute 20
Run Code Online (Sandbox Code Playgroud)

openvpn-auth-ldap.conf:

<LDAP>
    URL             ldap://dc1.domain:389
    TLSEnable       no
    BindDN          cn=bot_auth,cn=Users,dc=domain
    Password        bot_auth
    Timeout         15
    FollowReferrals yes
</LDAP>

<Authorization>
        BaseDN          "cn=Users,dc=domain"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    false
#        <Group>
#                BaseDN          "ou=groups,dc=mycompany,dc=local"
#                SearchFilter    "(|(cn=developers)(cn=artists))"
#                MemberAttribute uniqueMember …
Run Code Online (Sandbox Code Playgroud)

openvpn

2
推荐指数
1
解决办法
1万
查看次数

nginx:重定向到 if 块内的指定位置

我在 nginx 中有一个位置,其中 GET 和 POST 请求应该发送到不同的命名位置。但这段代码不起作用:

if ( $request_method = GET ) {
try_files /NON-EXISTENT @named_location_get
}

if ( $request_method = POST ) {
try_files /NON-EXISTENT @named_location_post
}
Run Code Online (Sandbox Code Playgroud)

因为try_files不准进去if

还有其他方法可以将请求重定向到指定位置吗if

nginx

2
推荐指数
1
解决办法
918
查看次数

标签 统计

nginx ×2

cpio ×1

crucible ×1

encoding ×1

initramfs ×1

linux ×1

mercurial ×1

mikrotik ×1

openvpn ×1

putty ×1

qos ×1

scripting ×1

ssh ×1

tc ×1