Аналог scp или rsync для cp -T (рассматривать цель как файл)

Самый простой способ - это указать cron. Просто используйте это как команду, которую будет запускать cron:

/home/me/myscript.sh; sleep 1h; /home/me/myscript.sh

Если ваш sleep не поддерживает суффикс h , используйте вместо него sleep 3600 .

Или напишите сценарий оболочки, назовите его wrapper.sh :

#!/usr/bin/env bash

/home/me/myscript.sh
sleep 1h 
/home/me/myscript.sh

И запустите его с помощью cron.

1
19.04.2018, 20:44
2 ответа

Это прервется, если рассматриваемый удаленный каталог существует:

if ! ssh user@host "[[ -d /path/to/directory ]]"; then
    # do your scp or rsync
else
    echo "Remote location is a directory.  Aborting." 1&>2
    exit 1
fi

Если вы хотите сделать это одним -вкладышем, тогда:

ssh user@host "[[ -d /path/to/directory ]]" || <<scp or rsync>>
0
28.01.2020, 00:36

Как вариант:

ssh remote-server 'cat > /tmp/asd' < /tmp/qwe

Но это не параметр.

Пример:

$ ssh localhost 'cat > /tmp/oi' < /tmp/qwe ; echo $?
Authenticated to localhost ([::1]:22).
bash: /tmp/oi: Is a directory
Transferred: sent 2832, received 2548 bytes, in 0.0 seconds
Bytes per second: sent 60414.8, received 54356.2
1
$ ssh localhost 'cat > /tmp/asd' < /tmp/qwe ; echo $?                                                                                                                                                                     
Authenticated to localhost ([::1]:22).
Transferred: sent 2832, received 2496 bytes, in 0.0 seconds
Bytes per second: sent 62499.8, received 55084.5
0
$ ls -l /tmp/{qwe,asd,oi}                                                                                                                                                                                                 
-rw-r--r-- 1 george george    4 Apr 19 21:21 /tmp/asd
-rw-r--r-- 1 george george    4 Apr 19 21:19 /tmp/qwe

/tmp/oi:
total 0
0
28.01.2020, 00:36

Теги

Похожие вопросы