как я копирую файлы как Microsofts “Robocopy”, делают в debian?

Если Вы внесли какие-либо изменения в Ваш /etc/apt/sources.list необходимо будет работать

sudo apt-get update

Для индексов, которые будут обновлены. sources.list просто список URL, где Debian будет искать пакеты. Это читается с командой apt-get update таким образом, пока та команда не выполняется, Вы все еще используете свои старые.

2
05.12.2014, 00:20
2 ответа

rsync отлично подходит для такого рода вещей, вам не нужно будет делать никакого переименования или чего-либо еще, он будет только копировать новые или обновленные вещи. У нее есть множество вариантов, чтобы изменить поведение в соответствии с вашими требованиями.

Например:

rsync -av /location/a/* /location/b
6
27.01.2020, 21:54

В Linux вы можете делать все, что угодно!

Вы можете использовать crond для программирования процесса для периодического выполнения и скрипт bash для копирования файлов.

Допустим, Вы создаете две директории:

pi@raspberrypi2 ~ $ mkdir tmp
pi@raspberrypi2 ~ $ cd tmp/

pi@raspberrypi2 ~/tmp $ mkdir 1;mkdir 2

затем помещаете файл в директорию 1:

pi@raspberrypi2 ~/tmp $ touch 1/file1

Затем Вы создаете свой скрипт как:

ej. простой bash скрипт:

#!/bin/bash

for i in $(ls 1/);do
    if [ -e 2/$i ];then
        echo "File already copied to directory 2" >> logfile.log
    else
        cp 1/$i 2/$i
        if [ $? = 0 ];then 
            echo "File $i copied to directory 2" >> logfile.log
        else 
            echo "Error copying file $i to directory 2" >> logfile.log
        fi
    fi
done

, который копирует файлы из директории 1 в директорию 2. А также записывает сообщение в лог-файл, используя эхо-команду.

test:

pi@raspberrypi2 ~/tmp $ ls 1/ 2/
1/:
file1

2/:
pi@raspberrypi2 ~/tmp $ bash script.sh
pi@raspberrypi2 ~/tmp $ ls 2/
file1
pi@raspberrypi2 ~/tmp $ cat logfile.log 
File file1 copied to directory 2
pi@raspberrypi2 ~/tmp $ bash script.sh 
pi@raspberrypi2 ~/tmp $ ls 2/
file1
pi@raspberrypi2 ~/tmp $ cat logfile.log 
File file1 copied to directory 2
File already copied to directory 2
pi@raspberrypi2 ~/tmp $ 

then you can insert a cronjob in crontab to run the script periodically:

pi@raspberrypi2 ~/tmp $ crontab -e

# run the script at at 5 a.m every day:
0 5 * * * bash /home/pi/tmp/script.sh

save the file and check that cronjob is installed:

pi@raspberrypi2 ~/tmp $ crontab -l

0 5 * * 1 bash /home/pi/tmp/script.sh

just can the script as a more you like, that example is a start point.

ПРИМЕЧАНИЕ: протестировано в Raspbian runnin в Raspberry Pi A+ :)

.
0
27.01.2020, 21:54

Теги

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