0

sftp を使用してローカル MacBook からリモート サーバーにファイルを移動する必要があります。

約 6000 個のファイルを取得し、それらをリモート サーバーに移動して処理する必要があります。処理システムの制限により、一度に最大 100 ファイルしか処理できません。処理システムは、監視しているフォルダーに 100 個を超えるファイルがある場合に爆撃します。

x # 分ごとに crontab を介して実行し、6,500 個のファイルを含む Mac 上のフォルダーから 100 個のファイルを「ステージング」フォルダーに移動するスクリプトをセットアップしたいと思います。次に、2 番目のスクリプトが「staging」フォルダーの内容を取得して、sftp フォルダーにアップロードします。

crontab は正常に動作していますが、移動するファイルの数を 100 に制限する方法がわかりません。

これが私がこれまでに行ったことです。たぶん私はこれを完全に間違っているので、どんな提案もいただければ幸いです!

#!/bin/bash
cd /Users/Me/Downloads/test
# Get files from unprocessed where the 6k files are located.

「ls」コマンドが「-bash: /bin/ls: Argument list too long」エラーを返す

ls unprocessed/*.pdf | head -n 99 > flist
 while read f
   do
    mv "$f" .
 done < flist

このスクリプトは、それを sftp サーバーにアップロードします。

./exp.sh

これにより、完了すると別のフォルダーに移動します

for f in *PAY*.pdf
 do
   mv "$f" processed/
done

どんな助けでも大歓迎です!

4

1 に答える 1