scp
2つの異なる場所と異なるサーバー上のユーザープロンプトの日付ファイルをインポートしたいと思います。これが私がこれまでにしたことです。ファイルから定数を読み取り、if条件を使用して条件を指定しようとしています。
- path1(
/nrtrdepath/
) にはファイルが 1 つあります。 - パス2(
/dcs/arch_05/AUDIT_REPORT/SL_AUDIT_REPORT/
)2つのファイル
すべてのファイルはscp
1つの場所になければなりません。
修正するパスワード
#=================================
#description :This script will scp user prompted SL audit files to another SCP /tmp/SL_Audit_Report/ path .
#author :Prabash
#date :20170902
#================================
true > /home/cmb/SL__scripts/Prabash/list2.txt
read -p "Enter Date " n
ls -lrt /nrtrdepath/ | awk {'print $9'} | grep AuditReport_SL_nrtrde_$n.csv >> /home/cmb/SL__scripts/Prabash/list2.txt
ls -lrt /dcs/SL_AUDIT_REPORT/ | awk {'print $9'} | grep AuditReport_SL_ICT_$n.csv.gz >> /home/cmb/SL__scripts/Prabash/list2.txt
ls -lrt /dcs/SL_AUDIT_REPORT/ | awk {'print $9'} | grep AuditReport_SL_BI_$n.csv.gz >> /home/cmb/SL__scripts/Prabash/list2.txt
k=`cat /home/cmb/SL__scripts/Prabash/list2.txt`
while IFS= read -r k ; do
if [[ $k == AuditReport_SL_nrtrde* ]] ; then
scp /nrtrdepath/$k [email protected]:/tmp/SL_Audit_Report/
else
for i in $k; do scp /dcs/SL_AUDIT_REPORT/$i [email protected]:/tmp/SL_Audit_Report/
fi
done
答え1
あなたがしたいのは、日付文字列に基づいて3つのファイルを選択し、scp
そのファイルを別の場所に保存するようです。これは次の方法で行うことができます。
#!/bin/sh
thedate="$1"
scp "/nrtrdepath/AuditReport_SL_nrtrde_$thedate.csv" \
"/dcs/SL_AUDIT_REPORT/AuditReport_SL_ICT_$thedate.csv.gz" \
"/dcs/SL_AUDIT_REPORT/AuditReport_SL_BI_$thedate.csv.gz" \
[email protected]:/tmp/SL_Audit_Report/
あなたはこれを実行します
$ sh ./script "datestring"
datestring
ファイル名の日付として使用する文字列はどこにありますか?
。scp
同様に、複数のファイルを1つの場所にコピーできるため、これは機能します。cp
いくつかのエラーチェックでは、次のことを行います。
#!/bin/sh
thedate="$1"
if [ ! -f "/nrtrdepath/AuditReport_SL_nrtrde_$thedate.csv" ]; then
printf 'AuditReport_SL_nrtrde_%s.csv is missing\n' "$thedate" >&2
do_exit=1
fi
if [ ! -f "/dcs/SL_AUDIT_REPORT/AuditReport_SL_ICT_$thedate.csv.gz" ]; then
printf 'AuditReport_SL_ICT_%s.csv is missing\n' "$thedate" >&2
do_exit=1
fi
if [ ! -f "/dcs/SL_AUDIT_REPORT/AuditReport_SL_BI_$thedate.csv.gz" ]; then
printf 'AuditReport_SL_BI_%s.csv is missing\n' "$thedate" >&2
do_exit=1
fi
if [ "$do_exit" -eq 1 ]; then
echo 'Some files are missing, exiting' >&2
exit 1
fi
if ! scp "/nrtrdepath/AuditReport_SL_nrtrde_$thedate.csv" \
"/dcs/SL_AUDIT_REPORT/AuditReport_SL_ICT_$thedate.csv.gz" \
"/dcs/SL_AUDIT_REPORT/AuditReport_SL_BI_$thedate.csv.gz" \
[email protected]:/tmp/SL_Audit_Report/
then
echo 'Errors executing scp' >&2
else
echo 'Transfer is done.'
fi
答え2
ファイルに変数の割り当てがある場合は、ファイルをインポートして有効にできます。
source /path/to/config_file