特定のフォルダを確認し、すべての文書を印刷し、その文書を削除するスクリプトを作成する方法についての指示を探しています。また、このスクリプトをクローンジョブとして実行したいと思います。
私がこれをやろうとしているのは、現在PDF請求書を動的に作成してフォルダに保存するPHP Webアプリケーションがありますが、Web上でこれらの文書を自動的に印刷できないためです(セキュリティ/ごみ箱の問題による電子メールの問題のようです) )。 。
言語設定はありませんが、理想的には印刷するコピー数、プリンタで使用するトレイなどを制御できるスクリプトが必要です。
答え1
私はこれをテストしていませんが、次のように動作します。
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
カップを使用するには、まずカップを取り付けて構成する必要がありますlp
。一般的なオプションの詳細については、lp
マンページ()を参照してください。man lp
これらのファイルをアーカイブしてそのファイルが印刷されたことを確認したら、削除できます。
これを行うには、rm "$file"
次のように置き換えます。
mkdir archived
mv "$file" archived
で述べたようにアントンのコメント、クローン操作とアプリケーションが互いに干渉しないように、一種のファイルロックを実装することをお勧めします。そのためにはいくつかのオプション。flock
おそらく最善の選択でしょう。優れたPHPサポートを提供します。
このスクリプトをcronjobに直接置くことができます。/usr/bin
とを含むようにパスを設定します/bin
。
スクリプトが動作することを確認するまで、スクリプトをcronjobとして実行したり、実際のファイルとして実行したりしないでください。