крон Linux: хочу скопировать папку

Вы хотите двунаправленную синхронизацию. Смотрите на унисон, который делает это: http://www.cis.upenn.edu/~bcpierce/unison/

Например, на Debian/Ubuntu:

$ sudo apt-get install unison
$ unison MAC/ LINUX/

Если Вы испытываете затруднения из-за полномочий (пример ext4-> FAT):

$ unison -perms 0 vlc-2.2.0/ /media/sf_vlc/vlc
Contacting server...
Looking for changes
Reconciling changes

vlc-2.2.0      vlc                
new dir  ---->            /  [f] 

Proceed with propagating updates? [] y
Propagating updates

6
17.11.2018, 02:32
3 ответа

Хорошая вещь сделать состояла бы в том, чтобы создать новый сжатый архив в Вашем доме.

Создайте этот сценарий, названный по имени экс-клена */home/sh/c2duo_mms_backup.sh*:

#!/bin/bash

cd /usr/local/src/djcode/
tar zcf /home/sh/c2duo_mms-`date +%Y%m%d`.tar.gz c2duo_mms

Обязательно добавьте исполняемое разрешение к сценарию:

chmod +x /home/sh/c2duo_mms_backup.sh

Затем добавьте соответствующую crontab запись с crontab-e команда:

0 13 * * 2 /home/sh/c2duo_mms_backup.sh

Сценарий будет создавать новый сжатый архив каждый вторник с датой в имени файла, так, чтобы можно было сохранить более старые резервные копии, если Вы хотите. Имя файла будет похоже на это:

c2duo_mms_20110719.tar.gz 
12
27.01.2020, 20:21
  • 1
    Это - то, что я искал!!!большое спасибо. –  Shehzad009 19.07.2011, 15:41
  • 2
    , лучшее решение состояло бы в том, чтобы использовать rsync или унисон. –  symcbean 19.07.2011, 17:58
$ crontab -e
0 13 * * 2 cp -b /usr/local/src/djcode/c2duo_mms /home/sh/

crontab -e команда должна потянуть crontab файл для редактирования в Вашем предпочтительном редакторе (Установленный РЕДАКТОРОМ или ВИЗУАЛЬНЫМИ переменными среды). crontab строка говорит для выполнения команды на 0th минуте, 13-м часе, 2-м дне недели, любом дне месяца любой год. Сама команда является простой единственной копией файла, за исключением того, что я добавил -b аргумент так, чтобы cp делает файл резервной копии. Это должно оставить Вас с ДВУМЯ резервными копиями в любом случае, текущим и предыдущим (с .bk расширением).

Править: Для папки вместо файла попробовать rsync:

0 13 * * 2 rsync -av /usr/local/src/djcode/c2duo_mms/ /home/sh/c2duo_mms/
3
27.01.2020, 20:21
  • 1
    Это было бы, "выполняют это во второй день каждого месяца в 1:00", право? –  Janne Pikkarainen 19.07.2011, 13:54
  • 2
    @caleb: По некоторым причинам это не копирует папку в мой корневой каталог. Там похож на некоторый способ, которым я могу найти то, что вызывает эту проблему? –  Shehzad009 19.07.2011, 14:25
  • 3
    @Shehzad009: при использовании rsync Вы могли бы удостовериться, что целевая папка существует сначала прежде, чем синхронизировать его. Некоторые создадут его, но некоторые не будут. Кроме того, для отладки этого выполните th rsyncs e команда вручную себя вместо от крона, чтобы видеть вывод и удостовериться, что резервная часть делает то, что Вы хотите прежде, чем засунуть его в крон. –  Caleb 19.07.2011, 14:27
  • 4
    @caleb: После использования rsync e Я получаю это "/home/sh/e" failed: No such file or directory (2). Не настолько уверенный, каково это e. –  Shehzad009 19.07.2011, 14:33
  • 5
    e поддельная опечатка на Вашем конце где-нибудь, это не появляется в команде, которую я предложил. Синтаксис rsync -[options] [source] [target], и важно закончиться запаздывающими наклонными чертами на источнике и целях при синхронизации каталогов. редактирование –  Caleb 19.07.2011, 14:36

Команда Use crontab -e и добавьте эту строку к своему crontab:

0 13 * * 2 cp -pra /usr/local/src/djcode/c2duo_mms /home/sh
2
27.01.2020, 20:21

Теги

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