1

Я успешно использовал приведенный ниже скрипт с Ubuntu 12.04. Теперь я сделал новую установку на Linux mint 17.1 и больше не могу заставить работать скрипт резервного копирования tar. это дает ошибку:

Вот скрипт, пробовал работать вне скрипта и tar работает:

#!/bin/bash

TODAY=$(date +%F)
HOST=$(hostname)

echo "------------- backing up $HOST ------------------"

sudo su - user -c "tar cvpzf /FILES/Media/Programs/Mint/Backup/$HOST$TODAY.tgz --exclude=/proc --exclude=/lost+found --exclude=/FILES/Media/Programs/Mint/Backup/$HOST$TODAY.tgz --exclude=/mnt --exclude=/FILES --exclude=/sys --exclude=/BACKUP --exclude=/MEDIA /"

echo "------------- Finished ------------------"

Дайте вот эту ошибку:

: not found/backup.sh: 2: /etc/init.d/backup.sh: 
: not found/backup.sh: 5: /etc/init.d/backup.sh: 
 ------------------ng up mint-server
: not found/backup.sh: 7: /etc/init.d/backup.sh: 
tar: Removing leading `/' from member names
tar: /\r: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
: not found/backup.sh: 9: /etc/init.d/backup.sh: 
------------- Finished ------------------

Почему скрипт не работает в Mint 17.1?

1 ответ1

0

Доброе утро!

Я не уверен, почему ваш скрипт не работает на Mint 17.1, но работает на Ubuntu 12.04 - но я считаю, что Ubuntu 12.04 использует upstart а Mint 17.1 использует systemd поэтому он будет основан на этом. Учитывая ошибки, похоже, что скрипт запускается /bin /sh, хотя я считаю, что это связано с /bin /dash, который должен быть в состоянии проанализировать ваш скрипт ...

Является ли ваш скрипт /etc/init.d/backup.sh? Ваш скрипт на самом деле не является надлежащим LSB-совместимым скриптом инициализации; Сценарии инициализации должны объявлять свои зависимости с помощью блока заголовка и отвечать на команды start, stop, reload и т. д. - хорошее описание есть в LSBInitScripts в вики Debian. Если у вас есть скрипт /etc/rc.local запустите ваш скрипт оттуда. Это подходящее место для размещения пользовательских сценариев, которые должны запускаться после того, как init завершил работу через уровни запуска.

Я считаю, что Mint 17 использует systemd по умолчанию, поэтому если у вас нет rc.local вам нужно будет создать его и добавить службу systemd, создав /etc/systemd/system/rc-local.service содержащий:

[Unit]
Description=/etc/rc.local Compatibility

[Service]
Type=oneshot
ExecStart=/etc/rc.local
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

а затем работает

systemctl enable rc-local.service

Все остальные пользовательские сценарии загрузки, которые вы используете, должны запускаться здесь. Конечно, вы можете создать отдельную службу systemd для запуска резервного копирования, используя вышеуказанное в качестве каркаса, измененного соответствующим образом.

НТН!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .