use*_*353 2 scripting cron printing
我正在寻找有关创建脚本的指导,该脚本将检查特定文件夹、打印所有文档(如果有)然后删除这些文档。我还想将此脚本作为 cron 作业运行。
我希望这样做的原因是因为我目前有一个 PHP 网络应用程序,它可以动态创建 pdf 发票并将它们保存在某个文件夹中,但我无法从网络自动打印这些文档(我想是为了安全/垃圾邮件问题)。
我没有语言偏好,但理想情况下希望脚本能够控制打印多少份,在打印机中使用哪个托盘等。
小智 5
我还没有测试过这个,但这应该有效:
cd some-directory
for file in *.pdf ; do
lp -n2 # number of copies
-o media=a4\ # media
-o number-up=2\ # number of pages per sheet
-o fit-to-page\ # scale to page
-o sides=two-sided-long-edge\ # duplex (can be 'one-sided')
-o tray1\ # tray
-d SomePrinter\ # device
"$file"
rm "$file"
done
Run Code Online (Sandbox Code Playgroud)
您需要先安装和配置 cups,然后才能使用lp
. 有关常用选项的更多信息,请参阅lp
联机帮助页 ( man lp
)。
您可能希望将文件存档,并在知道它们已被打印后将其删除。
为此,请替换rm "$file"
为:
mkdir archived
mv "$file" archived
Run Code Online (Sandbox Code Playgroud)
正如Anthon 的评论中提到的,您可能想要实现某种文件锁定,以确保您的 cron 作业和应用程序不会相互干扰。为此,您有几个选择。flock
可能是你最好的选择;它具有出色的 PHP 支持。
您可以将此脚本直接放入 cronjob 中。只需确保将您的路径设置为包含/usr/bin
和/bin
。
在您知道它可以工作之前,不要将脚本作为 cronjob 或您的实际文件运行。