フォルダを確認してファイルを印刷して削除するスクリプト

フォルダを確認してファイルを印刷して削除するスクリプト

特定のフォルダを確認し、すべての文書を印刷し、その文書を削除するスクリプトを作成する方法についての指示を探しています。また、このスクリプトをクローンジョブとして実行したいと思います。

私がこれをやろうとしているのは、現在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として実行したり、実際のファイルとして実行したりしないでください。

関連情報