FTPのアップロードとダウンロードファイルを実現するためのシェルスクリプト

しばらく前に検証のためよりも、それらに関連する情報について、お客様のFTPサーバーにアップロードし、特定の情報データ抽出の検証後に当社のプラットフォームで動作する必要があります。この情報のホストは4つだけが含まれているとして、採用戦略は、このホストのファイルアップロードで、ターゲットのFTPサーバー、ホストに4つのファイルのコレクションを生成することです。

1、リモートにファイルをコピーするために、他の3つのホストにホストAとの間に信頼関係を確立します

ローカル認証キーを生成#ホストがどこRSAを選択し、タイプのRSAまたはDSA鍵を生成するように選択でき
ます。[root @ linuxmi〜]#のSSH-keygenの-t rsaの-P '' -fの〜/ .ssh / id_rsaと> / dev / null 2>&1
ホストとより多くの数は、あなたがスクリプトのバッチ実行を期待使うことができれば、ライン上で実行するだけで3つのホスト、一つずつため、ファイルキーを3つの他のホストのネイティブのコピーを、authorized_keysになります。#
[ルート@ 〜linuxmi] SSH-コピー-ID#-iの〜/ .ssh / id_rsa.pub "[email protected] 22 -pである"
[ルート@ linuxmi〜] SSH-コピー-ID#-iの〜/ .ssh / "[email protected] 22 -pされる" id_rsa.pub
[ルート@ linuxmi〜] SSH-コピー-ID#-iの〜/ .ssh / id_rsa.pub "22を[email protected] -pがある"
#このマシンがターゲットホストに信頼関係の確立を表し成功した入力Bの出現、およびrootパスワードC、Dで、入力したパスワードを入力し、そこに提案されている
今と、マシンにログインしてみてください 22ルート-p「sshの」@ 192.168.1.B」」、およびチェックイン:

  .ssh / authorized_keysに

私たちは、あなたが予想していなかった余分なキーを追加していないことを確認します。

2.ターゲットFTPサーバにファイルをアップロードするスクリプトを確立

  顧客の需要は午前中に毎日データをアップロードする前の日である、我々はデータファイルが今日の日付_ホスト名_Result.csvのタイプに基づいて生成します。

#以下は、スクリプトの内容を示してい
ます。[root @ linuxmi GETFILE] CATのupload_csv.sh
#!/ binに/のbash
#このスクリプトは、クライアントのFTPサーバーに定期的に毎日アップロードデータファイルを生成するために使用されます

#ホームディレクトリを指定しているファイルのアップロード
SRCDIR =を/ tmp / test_jr / GETFILE /ファイル/
ディレクトリ#FTPサーバーを終了するには希望のアップロードを指定
DESDIR = / JRAQ_FILE /

#を示し、そのピアのFTPサーバーのユーザー名とパスワード
USER = finftp
PASSWD = "ABC @ 123"
IP番号先のFTPサーバ指定
IPは= 3.3.3.3
#は先のFTPサーバのポートを指定し、通常はデフォルトの
PORT = 21

#日付、アップロードするファイルを指定し
targetDay = `日付-d "-1日 ` "+" %Y%m個の%dを"

#アップロードするファイルを取得し
たCDの$ SRCDIRを
192.168.1.B 192.168.1.C 192.168.1.Dでホストの
ない
    $ SRCDIR / $ targetDay _ * _ Result.csv ./:SCPのルートの@ $ホストが
DONE
#はファイルかどうかを判断します権利を取得
[$?-eq 0] ||エコー "plsはチェックし、失敗したromoteファイルをコピーします。" >> $ SRCDIR / upload_file.log

FTPサーバへ#アップロードファイル
FTP -ivn << EOF
    オープン$ IP $ PORT
    ユーザーUSERの$の$ PASSWD
    バイナリ
    のCD $ DESDIRの
    液晶$ SRCDIRの
    PUTの$ {} _ * _ targetDay Result.csvは
    終了
EOFを

#判定文件是否上传成功
[$?-eq 0] &&エコー"の成功FTPサーバをromoteにアップロード$ targetDayのファイル。" >> $ SRCDIR / upload_file.log || 「ファイルのアップロードがplsはチェックし、失敗した。」エコー >> $ SRCDIR / upload_file.log

3、トランスコーディングを使用することが可能です

  このようエクセルエンコードされたUTF-8形式のGBKへの変換などのCSVファイル開きますが、UTF-8でエンコードされたファイルは、すべての中国名が文字化けしているエクセル、Excelで開くことが原因である、あなたは、トランスコーディングを使用する必要があり、これは完璧なオープンすることができます。

[ルート@ linuxmi〜]のiconv -futf8 -tgbk -C -o file2.csv file1.csv
ファイル#1 FILE1トランスコードする
トランスコードされたファイル名の後に#1 FILE2を
、すなわち、そのフォーマットから#-f --fromコード変換
その形式に#-t --to-コード
#-o --output出力ファイル名
不正な文字#は、このパラメータが不正なファイルは、いくつかの文字列を持っていないようにすることである出力の増加を無視し、そうでない場合は、この-c iconvの違法なパラメータ文字列に遭遇した後に文字が正常でないとそこにトランスコードされている場合でも、トランスコードに自動的に終了します。

おすすめ

転載: www.linuxidc.com/Linux/2019-08/159945.htm
おすすめ