一个月前,我使用“ wget --mirror ”创建了我们公共网站的镜像,以便在即将到来的计划维护窗口期间临时使用。我们的主要网站运行 HTML、PHP 和 MySQL,但镜像只需要纯 HTML,不需要动态内容、PHP 或数据库。
以下命令将为我们的网站创建一个简单的在线镜像:
wget --mirror http://www.example.org/
Run Code Online (Sandbox Code Playgroud)
请注意,Wget 手册说--mirror“目前相当于-r -N -l inf --no-remove-listing”(人类可读的等价物是`--recursive --timestamping --level=inf --no-remove-listing。
现在一个月过去了,网站的大部分内容都发生了变化。我希望 wget 检查所有页面,并下载任何已更改的页面。但是,这不起作用。
我的问题:
除了删除目录并重新运行镜像之外,我需要做什么来刷新网站的镜像?
http://www.example.org/index.html上的顶级文件没有改变,但有许多其他文件已经改变。
我以为我需要做的就是重新运行wget --mirror,因为--mirror暗示标志--recursive“指定递归下载”和--timestamping“除非比本地新,否则不要重新检索文件”。我认为这会检查所有页面并且只检索比我的本地副本更新的文件。我错了吗?
但是, wget 不会在第二次尝试时递归该站点。'wget --mirror' 会检查http://www.example.org/index.html,注意这个页面没有变化,然后停止。
--2010-06-29 10:14:07-- http://www.example.org/
Resolving www.example.org (www.example.org)... 10.10.6.100
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Server file no newer …Run Code Online (Sandbox Code Playgroud) 我在 RedHat 6 机器上。默认情况下启用 IPv6,并且所有接口都已分配一个 IPv6 地址。
ifconfig 报告这些 IPv6 地址具有“链接”的范围。
% ifconfig eth0 Link encap:Ethernet HWaddr 00:24:90:AA:BB:1A
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr:4fe94a:10.2a范围:Link UP BROADCAST RUNNING MULTICAST MTU:1500 公制:1eth1 Link encap:Ethernet HWaddr 00:24:90:AA:BB:1B
inet addr:10.8.8.44 Bcast:10.8.8.255 Mask:255.255.255.0 inet6 addr: fe80::224:90ff:feaa:Scope: Link UP BROADCAST RUNNING MULTICAST MTU:1500 公制:1
“范围:链接”是什么意思?我看到后半部分的IPv6地址和网卡的MAC地址类似。即使我没有明确设置 IPv6 地址,同一网段上的其他设备是否能够 ping 通此设备?
为什么我的 IPv4 地址没有出现此范围?“Scope:Link”是一个仅限 IPv6 的概念吗?
我正在尝试构建一个依赖于apache-ant.
我以为我可以运行make build-depends-list以查看此端口所需的所有依赖项:
# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp
Run Code Online (Sandbox Code Playgroud)
但是在安装完所有内容后,该端口有一个一英里长的依赖项列表:
apache-ant-1.8.1 desktop-file-utils-0.15_2 gamin-0.1.10_4 gettext-0.18.1.1 gio-fam-backend-2.26.1 glib-2.26.1_1 gmp-5.0.1 inputproto-2.0 javavmwrapper-2.3.5 kbproto-1.0.4 libX11-1.3.3_1,1 libXau-1.0.5 libXdmcp-1.0.3 libXext-1.1.1,1 libXi-1.3,1 libXtst-1.1.0 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.7 pcre-8.12 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6 recordproto-1.14 unzip-6.0 xextproto-7.1.1 xproto
Run Code Online (Sandbox Code Playgroud)
这个依赖列表是一个粗鲁的惊喜,我想在我承诺安装端口之前了解它。
如何查看端口的所有依赖项和所有子依赖项?
这是一个 Apache httpd 2.2 服务器。
我们要求对该网络服务器的访问通过 HTTPS 加密。
当 Web 客户端访问我位于http://www.example.org/ $foo(端口 80)的站点时,我想将他们的请求重定向到位于https://www.example.org/ $foo的 HTTPS 加密网站。
似乎有两种常见的方法可以做到这一点:
第一种方法使用来自 mod_alias的“重定向”指令:
<VirtualHost *:80>
Redirect permanent / https://www.example.org/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
第二种方法使用 mod_rewrite:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
“永久重定向”和 mod_rewrite 节之间有什么区别。一个比另一个更好吗?
似乎所有使用/调度 awstats 的建议都是通过 crontab 进行的,例如:(
0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null每小时运行一次 awstats)。
但是,如果我检查crontab -l,它会说 crontab 对我的用户来说是空的。
但是,当我检查 时/etc/cron.hourly,我得到了一个 awstats 文件,其中包含以下内容:
#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now -configdir="/etc/awstats" -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0
Run Code Online (Sandbox Code Playgroud)
只是让你知道,我的 awstats 更新得很好,它创建了报告,一切都很好。
运行 crontab 命令是否会在指定的 cron 文件夹中创建一个条目?(即 cron.hourly 或 cron.daily 等)?还是他们没有关系?如果它们相关,为什么我的用户没有 crontab 条目?
Oracle在 2010 年秋季放弃了 OpenSolaris,目前还不清楚 Oracle 是否会继续公开发布 ZFS 的更新,除非他们发布下一个主要版本的 Solaris。
FreeBSD 现在有ZFS v28可供测试。
但是 v28 是从哪里来的呢?我注意到主要的 ZFS 网站没有显示可用的版本 28。这个网站被废弃了吗?如果是这样,ZFS 项目的中央网站在哪里,以便我可以浏览存储库、阅读邮件列表、阅读发行说明等。
(我意识到 OpenSolaris 已被 Oracle 抛弃,并且他们将 ZFS 版本限制在社区中)。
freebsd-update命令在下载后打印更新条目。但它用more. 所以我必须按一些空格才能继续。有没有办法避免这种行为?我想以全自动方式执行更新。
我有一个 logrotate.d 配置文件,看起来像这样:
/home/myapp/log/* {
daily
compress
dateext
ifempty
delaycompress
olddir /home/myapp/baklog
}
Run Code Online (Sandbox Code Playgroud)
我想在一些特定的日志文件中应用其他规则,例如“邮件”。如何仅对某些文件应用其他规则?
如果我在上面添加另一个与附加文件匹配的规则(例如/home/myapp/log/warning.log { ... },我收到类似error: /etc/logrotate.d/myapp:3 duplicate log entry for /home/myapp/log/warning.log.
如何指定以重叠方式匹配特定文件的多个规则?
我的机器上有很多未使用的(旧的、死的)帐户。他们中的许多人每天收到数以千计的电子邮件,都是垃圾邮件。
如果该帐户被某人使用,我会让电子邮件退回,以便任何试图联系他们的人都知道出了什么问题。但是,我不确定如何处理数百个用于其他目的的帐户,例如我曾经用于要求我提供电子邮件地址的网站的一次性帐户,或者我曾经在网页上列出的地址.
选项 1:将
所有邮件转发到这些帐户/dev/null。发件人没有收到退回邮件。
选项 2:
让电子邮件退回。
将电子邮件发送到的好处/dev/null是垃圾邮件发送者不能使用我来生成退回邮件(反向分散垃圾邮件)。即:伪造“来自”行成为他们不喜欢的人,然后使用我向该人发送大量退回邮件。
弹跳它们的好处是对我来说维护更少。我可以从我的别名文件中删除该项目,电子邮件就会退回。此外,我不断发现新的垃圾邮件陷阱并将它们添加到我的“垃圾邮件黑洞”列表中,这是浪费时间。
每种方法的优缺点是什么?
freebsd ×3
linux ×2
apache-2.2 ×1
apache-2.4 ×1
automation ×1
awstats ×1
blackhole ×1
cron ×1
datacenter ×1
email ×1
illumos ×1
ipv6 ×1
logrotate ×1
mod-rewrite ×1
openindiana ×1
redirect ×1
spam ×1
unix ×1
wget ×1
zfs ×1
zfsonlinux ×1