小编Dra*_*kes的帖子

有没有办法让 PhantomJS(或任何无头浏览器)使用备用字体缓存?

有没有办法让 PhantomJS(或任何无头浏览器)使用替代字体缓存/usr/share/fonts/?在 PhantomJS 中使用更多字体(例如 CJK 字体)的一种方法是将它们安装到此目录中。但是,这是一个共享服务器,无法完成。

我似乎无法为此找到CLI 参数。如果这是一个愚蠢的问题,请原谅我。

这是一个 RedHat 版本,yum 和 rpm 被禁用。

PhantomJS 的屏幕截图- 字体未加载:

字体渲染失败

预期结果(http://v1.jontangerine.com/silo/typography/web-fonts/):

实际字体渲染


已解决: @grochmal 向我展示了字体可以安装在主文件夹中。我跑fc-cache -vf了,系统字体和~/.fonts/TTF字体都被缓存了。例如,运行fc-list "impact"找到 Impact 字体(仅供个人使用):

> fc-list impact
Impact:style=Regular,Normal,oby?ejné,Standard,????????,Normaali,Normál,Normale,Standaard,Normalny,???????,Normálne,Navadno,Arrunta
Run Code Online (Sandbox Code Playgroud)

我用@grochmal 巧妙建议的堆栈跟踪证实了这一点:

strace ./phantomjs ../examples/rasterize.js http://example.com img.jpg 2>&1 | grep font
Run Code Online (Sandbox Code Playgroud)

并发现 PhantomJS 确实在我的用户字体目录中查找

open("/home/user1/.fonts/TTF/verdana.ttf", O_RDONLY) = 11
open("/home/user1/.fonts/TTF/AndaleMo.TTF", O_RDONLY) = 11
open("/home/user1/.fonts/TTF/arial.ttf", O_RDONLY) = 11
open("/home/user1/.fonts/TTF/cour.ttf", O_RDONLY) = 11
open("/home/user1/.fonts/TTF/georgia.ttf", O_RDONLY) = …
Run Code Online (Sandbox Code Playgroud)

linux command-line fonts

7
推荐指数
1
解决办法
4147
查看次数

如何在没有 root 的情况下运行 Xvfb?

在没有 root 的服务器上的期望结果:

1) 在Xvfb没有输入设备的情况下运行,或

2) 开始Xvfb运行

背景:

我有两台机器都具有几乎相同的 CentOS 构建。一台机器有 root 访问权限和互联网,另一台是沙盒(没有 root 访问权限),没有包管理器(没有 yum),也没有 Xserver。我试图让Xvfb(X 虚拟帧缓冲区)在目标机器上运行以试验无头 firefox。当Xvfb工作时,我可以使用xvfb-run。

我试过的:

我已Xvfb使用此方法成功传输了二进制文件和用户共享库(请参阅答案下方的注释)。我能够运行Xvfb,像这样

Xvfb :1 -nolisten tcp -screen 0 1680x1050x16
Run Code Online (Sandbox Code Playgroud)

但后来我收到一个键盘映射错误(旁白:我还想处理我设置的临时目录问题export TMPDIR=~/tmp):

_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of …
Run Code Online (Sandbox Code Playgroud)

xorg centos xvfb xkb

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

SSH 连接通常应使用多少 RAM?

我想问一下 SSH 连接通常需要多少内存。以下是我如何找出发生了多少 RAM 命中:

请不要因为我正在使用 GoDaddy 共享托管计划或 cPanel 而激动不已。当没有任何运行时,cPanel 报告正在使用 0 MB 的 RAM。当我通过 SSH 连接到我的(1GB,2 个 CPU)共享主机时,cPanel 突然报告大约 490 MB 的 RAM 正在使用中。

(另外,我实际上删除了公共文件夹中的所有 PHP 文件,以消除由于机器人爬行而导致的可能性。我阅读了https://serverfault.com/questions/449296/why-is-linux-reporting-free-memory-奇怪的是,但这没有帮助。)

无连接:

没有 SSH

通过 SSH 连接到我的帐户后:

SSH

ps aux输出:

login as: user123
user123@xxxx.com's password:
user123@a2plcpnl0490 [~]$ ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
user123   675171  0.0  0.0 138652  1492 ?        S    11:09   0:00 pure-ftpd (ID
user123   678698  0.0  0.0 191408  9132 ?        S    11:25   0:00 …
Run Code Online (Sandbox Code Playgroud)

ssh memory sshd

5
推荐指数
1
解决办法
9169
查看次数

在 iptables 中使用 PREROUTING 丢弃数据包

过滤表是丢弃数据包的最佳位置,同意。

但是,开箱即用,Docker 通过 PREROUTING 绕过 INPUT 过滤器规则到它自己的 FORWARD 规则,使 Docker 容器世界可访问。插入DOCKER 命名的过滤器 INPUT/FORWARD 规则失败,因为当 Docker 重新启动时,它们被删除然后插入(未附加)。

我最好的尝试是在 Docker 之前插入另一个 PREROUTING 链,并将不需要的数据包从 eth0 (WAN) 发送到黑洞 - 0.0.0.1 - 因为您不能再在 nat 表中删除/拒绝。

# Route anything but TCP 80,443 and ICMP to an IPv4 black hole
iptables -t nat -N BLACKHOLE
iptables -t nat -A BLACKHOLE ! -i eth0 -j RETURN
iptables -t nat -A BLACKHOLE -m conntrack --ctstate ESTABLISHED,RELATED -j RETURN
iptables -t nat -A BLACKHOLE -p tcp --dport 80 …
Run Code Online (Sandbox Code Playgroud)

firewall iptables docker alpine-linux

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

tar 一个没有目录结构的文件列表

说我这样做:

tar cvf allfiles.tar $(<mylist.txt)

和mylist.txt包含这个:

/tmp/lib1
/tmp/path2/lib2
/path3/lib3
Run Code Online (Sandbox Code Playgroud)

如何对文件进行 tar,以便 tarball 只包含

lib1
lib2
lib3
Run Code Online (Sandbox Code Playgroud)

根本没有目录结构?


该-C的--directory通常推荐的选项(REF,REF),但有多个目录,所以这是行不通的。此外,--xform看起来它需要一个我们没有的固定模式(ref)。

linux tar centos

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

如何在 CIFS 挂载上 chown 文件?

这是我的步骤:

mkdir /mnt/docs
chown www-data:www-data /mnt/docs
ls -l /mnt
Run Code Online (Sandbox Code Playgroud)

积极的结果:

drwxr-xr-x 2 www-data www-data 4096 Jan  6 01:14 docs
drwxr-xr-x 2 root     root     4096 Dec  8 21:46 cdrom
Run Code Online (Sandbox Code Playgroud)

现在我成功挂载了远程共享(我可以touch以 root 身份将其归档),就像这样

mount -t cifs //192.168.1.10/Public/Documents/Docs -o username=****,password="****" /mnt/docs
ls -l /mnt
Run Code Online (Sandbox Code Playgroud)

否定结果(所有者回到root):

drwxr-xr-x 2 root root    0 Jan 12 02:51 docs
drwxr-xr-x 2 root root 4096 Dec  8 21:46 cdrom
Run Code Online (Sandbox Code Playgroud)

然后我尝试chown像这样(使用-h)符号链接

chown -h www-data:www-data /mnt/docs
ls -l /mnt
Run Code Online (Sandbox Code Playgroud)

但结果还是

drwxr-xr-x 2 root root    0 Jan 12 …
Run Code Online (Sandbox Code Playgroud)

samba chown

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

标签 统计

centos ×2

linux ×2

alpine-linux ×1

chown ×1

command-line ×1

docker ×1

firewall ×1

fonts ×1

iptables ×1

memory ×1

samba ×1

ssh ×1

sshd ×1

tar ×1

xkb ×1

xorg ×1

xvfb ×1