Как гласит заголовок, у меня написан сценарий оболочки, а затем перенесите файл в RHEL6 или 7. Я даю сценарию разрешение на запуск и запуск. Он выводит кучу ошибок.

Если я сделаю резервную копию текста скрипта vi.sh, затем:wq и chmod +x, он отлично работает.

Я пробовал filezilla и WinSCP. Я попытался изменить настройки передачи на двоичный файл. Я пробовал notepad++ и notepad.exe. Ничего не работает, кроме создания сценария на реальном сервере.

Этот вопрос не изолирован только для меня. Сотрудники испытывают тот же результат на своих машинах.

Есть идеи?

# !/bin/bash
# A backup script that copies important files to a backup folder called 
#`hostname`_'date +%Y-%m-%d`;
# Example: BrianAA_2017-10-11

path=/tmp/`hostname`_`date +%Y-%m-%d`
backup=$path

echo "Making backup directory $backup now"
mkdir -p -m777 $path

#Copy
cp -pr /opt/advatar/etc/advatar.conf $backup
cp -pr /etc/hosts $backup
cp -L /etc/rc.local $backup
cp -pr /etc/sysconfig/network $backup
cp -pr /etc/ntp.conf $backup
cp -pr /etc/sysconfig/ntpd $backup

#Looks for only "ifcfg-*" in /etc/sysconfig/network-scripts/
rsync -a --include='ifcfg-*' --exclude '*' /etc/sysconfig/network-scripts/ 
$backup

#iptables || firewalld
cat /etc/redhat-release | egrep -q '6.*'
if [ "$?" = "0" ]; then
    cp -pr /etc/sysconfig/iptables $backup
    cp -pr /etc/sysconfig/iptables-config $backup
fi
cat /etc/redhat-release | egrep -q '7.*'
if [ "$?" = "0" ]; then
    cp -pr /etc/firewalld $backup
fi

#prints output of network information to txt files in $backup
route > $backup/route.txt
ip a s > $backup/ifconfig.txt

#Looks for external mount points and searches by type: cifs, nfs, rpc,
#then copies necessary files to $backup if present in mount
mount | egrep -q 'cifs|nfs|rpc'
if [ "$?" = "0" ]; then
mount > $backup/mount.txt
    cp -pr /etc/auto.cifs $backup
    cp -pr /etc/auto.master $backup
    cp -pr /root/.smbauth $backup
    cp -pr /etc/fstab $backup
else
    echo "No Network Mount"
fi

[root @ IFS-AA6 tmp] # ./back.sh
: команда не найдена
: команда не найдена
каталог резервных копий /tmp /IFS-AA6_2017-10-26
: команда не найдена
: команда не найдена
ОШИБКА: место назначения должно быть каталогом при копировании более 1 файла
Ошибка rsync: ошибки при выборе файлов ввода / вывода, dirs (код 3) в main.c (542) [получатель = 3.0.6]
rsync: соединение неожиданно закрыто (получено 9 байтов) [отправитель]
Ошибка rsync: ошибка в потоке данных протокола rsync (код 12) на io.c (600 [отправитель = 3.0.6]
: команда не найдена
./back.sh: строка 50: синтаксическая ошибка рядом с неожиданным токеном fi' ./back.sh: line 50: fi'
[root @ IFS-AA6 tmp] #

1 ответ1

0

При передаче файла убедитесь, что окончания строк только LF, а не CRLF. Команда: not found, скорее всего, \r: команда не найдена для пустых строк с \r \n окончаниями строк - glenn jackman 16 минут назад

@glennjackman большое спасибо, что это было

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