skrip pada mesin jarak jauh yang mengarsipkan file gagal

0

Saya memiliki skrip sederhana (Diberikan di bawah) pada mesin yang mengumpulkan file dari beberapa folder menjadi satu dan kemudian mengarsipkannya. Script berfungsi seperti yang diharapkan pada mesin jarak jauh. Ketika saya menjalankannya melalui ssh ( ssh user@machine -f 'path.to.script') saya mendapatkan output ini

tar: toSend: Tidak bisa stat: Tidak ada tar file atau direktori: Kesalahan keluar tertunda dari kesalahan sebelumnya Dibunuh oleh sinyal 1.

Apa yang saya lakukan salah?

#!/bin/bash

archfile=~/fastspace/toSend.tgz
dir=~/fastspace/toSend
if [ -f $archfile ] ; then
    rm $archfile
fi

if [ -d $dir ]; then
    rm -r $dir
fi

mkdir $dir

for i in {1..20}; do
    cp ~/fastspace/prog/mn0.$i/resSum.dat $dir/res$i
    cp ~/fastspace/prog/mn0.$i/parOut.dat $dir/pars$i
done

tar cvfz $archfile toSend

rm -r $dir
Yotam
sumber
Coba tar cvfz $archfile $diralih-alih tar cvfz $archfile toSend.
ott--
@ott Dalam hal ini saya mendapatkan pohon folder lengkap toSend bukan folder itu sendiri. Selain itu, ini bagus.
Yotam
Ah, maka Anda ingin chdir ke folder di atas. Kemudian ubah ke tar cvfz $archfile -C ~/fastspace toSend.
ott--
Perintah Anda tidak diterima oleh bash. Saya juga tidak yakin saya mengerti saran Anda. Anda menyarankan saya akan masuk ke mesin remote dan menjalankannya dari sana? atau tambahkan baris chdir di mana saya akan pergi ke folder di mana saya ingin kamu meletakkan folder?
Yotam
Anda harus mengubah perintah tar di skrip Anda. The -C ~/fastspaceberarti chdir to ~/faszspacesebelum memulai untuk arsip toSend dir`.
ott--