如何在从远程服务器复制之前将所有文件压缩到一个 tar.gz 文件中?
How to compress all the files into one tar.gz file before copying from remote servers?
我有大约 2000 个文件驻留在远程服务器上,每个文件大小约为 10 GB,我想从远程服务器复制所有这 2000 个文件。我可以使用 GNU parallel
并行化我的 scp 并一次将它们与 5 个文件并行复制。但是有什么方法可以 tar 一个 files.tar.gz
中的所有 2000 个文件,然后复制那个 tar.gz 文件,然后在复制后解压缩它们?这将减少我的复制时间,而且速度会非常快。我想从我的脚本中执行 tar 和 untar 这将从远程服务器复制文件。
do_Copy() {
el=
PRIMSEC=
df /data01 | awk 'NR>1 {gsub(/%/,""); if ( > 90) {exit 1}}' || { echo "exiting as we ran out of space" >&2 && exit 1; }
scp user@"$LOCAL":"$dir3"/process_"$el"_try.data "$PRIMSEC"/. || { touch "$status_dir/local_down" && scp user@"$PRIMARY":"$dir3"/process_"$el"_try.data "$PRIMSEC"/.; } || { touch "$status_dir/primary_down" && scp user@"$SECONDARY":"$dir3"/process_"$el"_try.data "$PRIMSEC"/.; } || { touch "$status_dir/secondary_down" && exit 1; }
}
export -f do_Copy
parallel -j 5 do_Copy {} $DATA ::: ${SHARDS[@]} &
wait
在我上面的脚本中,我首先从 LOCAL
服务器复制,但是如果 LOCAL
服务器出现故障,那么我将从 PRIMARY
服务器复制,如果它也出现故障然后我将从 SECONDARY
服务器复制。
不使用 scp
,而是使用 rsync
和选项 -z
在复制时压缩数据。
有关更多说明,请参阅 https://unix.stackexchange.com/questions/70581/scp-and-compress-at-the-same-time-no-intermediate-save。
我有大约 2000 个文件驻留在远程服务器上,每个文件大小约为 10 GB,我想从远程服务器复制所有这 2000 个文件。我可以使用 GNU parallel
并行化我的 scp 并一次将它们与 5 个文件并行复制。但是有什么方法可以 tar 一个 files.tar.gz
中的所有 2000 个文件,然后复制那个 tar.gz 文件,然后在复制后解压缩它们?这将减少我的复制时间,而且速度会非常快。我想从我的脚本中执行 tar 和 untar 这将从远程服务器复制文件。
do_Copy() {
el=
PRIMSEC=
df /data01 | awk 'NR>1 {gsub(/%/,""); if ( > 90) {exit 1}}' || { echo "exiting as we ran out of space" >&2 && exit 1; }
scp user@"$LOCAL":"$dir3"/process_"$el"_try.data "$PRIMSEC"/. || { touch "$status_dir/local_down" && scp user@"$PRIMARY":"$dir3"/process_"$el"_try.data "$PRIMSEC"/.; } || { touch "$status_dir/primary_down" && scp user@"$SECONDARY":"$dir3"/process_"$el"_try.data "$PRIMSEC"/.; } || { touch "$status_dir/secondary_down" && exit 1; }
}
export -f do_Copy
parallel -j 5 do_Copy {} $DATA ::: ${SHARDS[@]} &
wait
在我上面的脚本中,我首先从 LOCAL
服务器复制,但是如果 LOCAL
服务器出现故障,那么我将从 PRIMARY
服务器复制,如果它也出现故障然后我将从 SECONDARY
服务器复制。
不使用 scp
,而是使用 rsync
和选项 -z
在复制时压缩数据。
有关更多说明,请参阅 https://unix.stackexchange.com/questions/70581/scp-and-compress-at-the-same-time-no-intermediate-save。