Я хочу получить запрашиваемые пользователем файлы даты, которые находятся в двух разных местах, и scp
на другой сервер. Это то, что я делал до сих пор, я борюсь с чтением констант из файла и условием if.
/ nrtrdepath /
) содержит 1 файл / dcs / arch_05 / AUDIT_REPORT / SL_AUDIT_REPORT /
) 2 файла все файлы должны scp
в одно место
обновлен код
#=================================
#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 cmb@172.23.1.136:/tmp/SL_Audit_Report/
else
for i in $k; do scp /dcs/SL_AUDIT_REPORT/$i cmb@172.23.1.136:/tmp/SL_Audit_Report/
fi
done
Похоже, вам нужно выбрать три файла на основе строки даты и 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" \
cmb@172.23.1.136:/tmp/SL_Audit_Report/
. Вы должны запустить это с помощью
$ sh ./script "datestring"
, где строка даты
— это строка, которую вы хотите использовать в качестве даты в имени файла.
Это работает, поскольку scp
может копировать несколько файлов в одно место точно так же, как 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" \
cmb@172.23.1.136:/tmp/SL_Audit_Report/
then
echo 'Errors executing scp' >&2
else
echo 'Transfer is done.'
fi
Если у вас есть назначения переменных в файле, вы можете активировать их, найдя этот файл:
source /path/to/config_file