Linux shell ftpコマンドは、ファイルの日付に従ってファイルをダウンロードする方法です。
需要:ftpはリモートデータのファイルを取得し、ファイルの作成時点に応じてファイルをダウンロードします。ファイルのサイズなど他の需要に応じて自分で拡張できます。
知識ポイントのまとめ:
1、ファイルの取得時間:
20179081603
3、ファイル名を指定し、正則が一致します。
4、書類の時間を比較する
コマンド取得命令の実行結果。
以上でローカルファイルの時間を比較する方法が完成しました。次にリモートホストのファイル時間を判断します。
5、ftpコマンドはリモートホストに登録し、検索するファイルの内容をフィルタします。
6、ファイルをダウンロードする
以上は小编でご绍介したLinux shell ftp命令で、ファイルの日付によってファイルをダウンロードする方法です。皆様に何かご迷惑があったら、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
知識ポイントのまとめ:
1、ファイルの取得時間:
ls -lrt|awk '{print $6" "$7" "$8}'
時間の内容:Sep 8 16:03
2、時間フォーマット変換date -d "Sep 8 16:03" +%Y%m%d%H%M
変換結果:20179081603
3、ファイル名を指定し、正則が一致します。
pattern="${month}.*.dat$"
ls -lrt |awk '$9 ~ /'$pattern'/ {print $6" "$7" "$8}'
注意awk内モード変数用' 'まとめて、*は任意の文字で、$はdatで終わることを表します。patternの内容は必要に応じて自分で設定します。4、書類の時間を比較する
ls -lrt |awk '$9 ~ /'$pattern'/ {\
ctime="date -d \""$6" "$7" "$8"\" +%Y%m%d%H%M"; \
ctime|getline filetime; if( filetime > '$checktime' ) print $9 ; }
ファイルを取得する時間は、時間を変換し、変換後の時間を所定のドルchecktimeと比較して、ドルcheckimeより時間が大きい場合はファイル名を表示します。コマンド取得命令の実行結果。
以上でローカルファイルの時間を比較する方法が完成しました。次にリモートホストのファイル時間を判断します。
5、ftpコマンドはリモートホストに登録し、検索するファイルの内容をフィルタします。
ftp_cmd(){
ftp -i -n <<!
open $ftp_ip
user $get_user $get_pwd
binary
cd ${get_dir}
lcd ${local_dir}
$*
bye
!
}
pattern="${month}.*.dat$"
files=$(ftp_cmd ls -lrt |awk '$9 ~ /'$pattern'/ {\
ctime="date -d \""$6" "$7" "$8"\" +%Y%m%d%H%M"; \
ctime|getline filetime; if( filetime > '$checktime' ) print $9 ; }'|xargs)
関数呼び出しにより指定されたホストにftpを実行し、cdから指定されたディレクトリに、awkでls-lrtの結果を取得し、指定された時間より大きいファイル名を時間計算して取得する。6、ファイルをダウンロードする
ftp_cmd mget $files
締め括りをつける以上は小编でご绍介したLinux shell ftp命令で、ファイルの日付によってファイルをダウンロードする方法です。皆様に何かご迷惑があったら、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。