我添加了一个 cron 作业来准备我网站的缓存。命令是:
cd crawler && wget --recursive --no-parent --domains=example.com --level=inf --reject css,js,png,jpg,mp4,psd,pdf --delete-after --header "Cookie: has_js=1" -U "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" https://example.com
该网站有大约20k页。但是我的缓存现在是 40k 页,并且在 48 小时后仍然存在。所以我想停止该命令的运行。
为此,我跑了:
ps fauxww | grep -A 1 '[C]RON'
那给了我
root 8174 0.0 0.0 184304 2748 ? S Sep28 0:16 \_ CROND
10037 8182 0.0 0.0 106112 1044 ? Ss Sep28 0:00 | \_ /bin/sh -c cd crawler && wget --recursive --no-parent --domains=example.com --level=inf --reject css,js,png,jpg,mp4,psd,pdf --delete-after --header "Cookie: has_js=1" -U "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" https://example.com
--
root 23177 0.0 0.0 184300 3556 ? S 13:00 0:00 \_ CROND
root 23180 0.0 0.2 345556 27648 ? Ss 13:00 0:00 | \_ /usr/bin/sw-engine -c /usr/local/psa/admin/conf/php.ini -dauto_prepend_file=sdk.php /usr/local/psa/admin/plib/modules/plesk-mobile/scripts/push_worker.php
root 24754 0.0 0.0 184300 3556 ? S 13:01 0:00 \_ CROND
root 24755 0.0 0.0 106112 1276 ? Ss 13:01 0:00 \_ /bin/bash /usr/bin/run-parts /etc/cron.hourly
我可以看到 8182 的进程 ID,所以我然后运行
kill 8182
现在当我跑
ps fauxww | grep -A 1 '[C]RON'
我明白了
10037 8182 0.0 0.0 0 0 ? Zs Sep28 0:00 | \_ [sh] <defunct>
root 7120 0.0 0.0 184300 3556 ? S 13:10 0:00 \_ CROND
guy 7123 0.0 0.0 106112 1164 ? Ss 13:10 0:00 | \_ /bin/sh -c /usr/local/psa/admin/sbin/fetch_url 'https://example.com/cron.php' > /dev/null
guy 7127 0.0 0.0 106112 1212 ? S 13:10 0:00 | \_ /bin/bash /usr/local/psa/admin/sbin/fetch_url https://example.com/cron.php
--
root 21941 0.0 0.0 184300 3556 ? S 13:20 0:00 \_ CROND
root 21947 0.1 0.2 345556 27644 ? Ss 13:20 0:00 \_ /usr/bin/sw-engine -c /usr/local/psa/admin/conf/php.ini -dauto_prepend_file=sdk.php /usr/local/psa/admin/plib/modules/plesk-mobile/scripts/push_worker.php
root 2737 0.0 0.0 21104 308 ? Ss 2018 0:00 /usr/sbin/atd
关键是 wget 命令仍在运行。由于缓存文件的目录正在以秒为单位增长。
那么如何在我的服务器空间不足之前停止该 wget 命令呢?
我想你杀
/bin/sh
了你的父母wget
。你没有做任何事情wget
。wget
要杀死kill
你需要找到wget
.ps fauxww | grep -A 2 '[C]RON'
(或更多2
)本可以向您展示正确的wget
。现在找到这种方式可能为时已晚,wget
因为作为一个孤立的进程,它被另一个可能匹配也可能不匹配的进程采用[C]RON
。找到
wget
与pidof wget
或的 PIDps … | grep [w]get
,而不依赖于它的关系,CROND
因为关系可能不再存在。如果有许多wget
进程,您可能需要进一步调查以在许多进程中找到正确的 PID。然后kill
它。期待成功,除非您再次针对错误的流程。您之前的尝试没有杀死
wget
,因为您根本没有瞄准wget
。