是否使用自动linux Bash Shell脚本使用wkhtmltopdf生成Pdf?

是否使用自动linux Bash Shell脚本使用wkhtmltopdf生成Pdf?,linux,Linux,我正在尝试使用自动化bash shell脚本生成pdf,该脚本在每分钟检查一个文件url.txt的内容后,该文件逐行记录所有url,我正在使用wkhtmltopdf生成pdf 但是问题是pdf不是在自动过程中生成的,但是如果我手动调用该脚本,pdf就会生成。如果有人知道解决方案,请提供给我? 脚本代码为: 读行时; 做 wkhtmltopdf$line/var/www/images/Upload_files/name_of_file.pdf 完成/tmp/log.txt 2>&1,以记录脚本的所

我正在尝试使用自动化bash shell脚本生成pdf,该脚本在每分钟检查一个文件url.txt的内容后,该文件逐行记录所有url,我正在使用wkhtmltopdf生成pdf

但是问题是pdf不是在自动过程中生成的,但是如果我手动调用该脚本,pdf就会生成。如果有人知道解决方案,请提供给我? 脚本代码为:

读行时; 做 wkhtmltopdf$line/var/www/images/Upload_files/name_of_file.pdf
完成如果在cron中运行它,那么它无法工作的最可能原因是缺少X服务器。在这种情况下,一种解决方案是使用

尝试在no-X环境中使用
xvfb运行
wkhtmltopdf
,例如,通过ssh连接到本地主机,并验证未设置
$DISPLAY
环境变量:

$ xvfb-run -e /tmp/xvfb-error.log -s'-screen 0 1024x768x24' wkhtmltopdf somefile.html output.pdf
如果工作正常,那么将其放入每1分钟运行一次的cron作业中,以测试这一行程序是否在cron下工作

否则,请检查
/tmp/xvfb error.log
文件,查看
xvfb
是否给出任何错误


如果您可以说明当它不工作时收到的错误消息,这将非常有用。如果您在cron中运行它,那么它不工作的最可能原因是因为缺少X服务器。在这种情况下,一种解决方案是使用

尝试在no-X环境中使用
xvfb运行
wkhtmltopdf
,例如,通过ssh连接到本地主机,并验证未设置
$DISPLAY
环境变量:

$ xvfb-run -e /tmp/xvfb-error.log -s'-screen 0 1024x768x24' wkhtmltopdf somefile.html output.pdf
如果工作正常,那么将其放入每1分钟运行一次的cron作业中,以测试这一行程序是否在cron下工作

否则,请检查
/tmp/xvfb error.log
文件,查看
xvfb
是否给出任何错误



如果您可以说明当它不起作用时收到的错误消息,这将非常有用

有时,当您在cron中运行作业时,您的环境与从shell运行时不同,尤其是指向像wkhtmltopdf这样的bin文件的路径。你试过用完整路径调用它吗?我使用了完整路径,即/usr/bin/wkhtmltopdf,但它仍然不起作用一点调试可能会帮助你-在
do
之后,添加类似
echo“processing$line”
的内容。最好总是将自动操作记录到文件中,因此在crontab行中,在命令之后添加
>/tmp/log.txt 2>&1
,以记录脚本的所有输出。这应该有助于找到问题感谢您的帮助shell脚本可以很好地处理我从code.google.com下载的wkhtmltopdf文件,但它不能处理我使用synaptic Manager下载的wkhtmltopdf有时当您在cron上运行作业时,您的环境与从cron上运行时的环境不同shell-尤其是指向像wkhtmltopdf这样的bin文件的路径。你试过用完整路径调用它吗?我使用了完整路径,即/usr/bin/wkhtmltopdf,但它仍然不起作用一点调试可能会帮助你-在
do
之后,添加类似
echo“processing$line”
的内容。最好总是将自动操作记录到文件中,因此在crontab行中,在命令之后添加
>/tmp/log.txt 2>&1
,以记录脚本的所有输出。这应该有助于找到问题感谢您的帮助,shell脚本可以很好地处理我从code.google.com下载的wkhtmltopdf文件,但不能处理我根据synaptic managerHeed@mogoman的建议下载的wkhtmltopdf文件-请检查您的cron作业日志中的错误。通常,cron作业运行的命令的输出会通过电子邮件发送到某个地方。因此,检查该电子邮件或将命令的stderr和stdout重定向到另一个文件并检查内容。手动调用上述命令时,它工作正常,生成pdf,但当我将其放入cron作业时,不会生成pdf,并且如果服务器不再运行,xvfb-error.log has message Server已处于活动状态,以显示99,remove/tmp/X.99-lock and start againi已经阅读了Mogoman的建议,该文件显示xvfb运行:错误:xvfb无法开始尝试将屏幕参数从
-屏幕0 1024x768x24
更改为xvfb运行
-屏幕1 1024x768x24
,感谢holygeek的帮助,shell脚本与我从code.google.com下载的wkhtmltopdf文件配合良好,但与我根据synaptic managerHeed@mogoman的建议下载的wkhtmltopdf不配合-请检查您的cron作业日志中的错误。通常,cron作业运行的命令的输出会通过电子邮件发送到某个地方。因此,检查该电子邮件或将命令的stderr和stdout重定向到另一个文件并检查内容。手动调用上述命令时,它工作正常,生成pdf,但当我将其放入cron作业时,不会生成pdf,并且如果服务器不再运行,xvfb-error.log has message Server已处于活动状态,以显示99,remove/tmp/X.99-lock and start againi已经阅读了Mogoman的建议,该文件显示xvfb运行:错误:xvfb无法开始尝试将屏幕参数从
-屏幕0 1024x768x24
更改为xvfb运行
-屏幕1 1024x768x24
,感谢holygeek的帮助,shell脚本与我从code.google.com下载的wkhtmltopdf文件配合良好,但与我使用synaptic manager下载的wkhtmltopdf不配合