我有使用 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) 我在 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"。
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-Control为public, 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?
我无法使用 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。我究竟做错了什么?
有 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) 我正在尝试解压 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)
如何获取所有存档内容?
我正在尝试使用 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) 我在 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?