Возможно ли иметь задержку между scp и проверкой наличия нового файла

Linux имеет тот же файл хоста. Просто редактирование:

/etc/hosts

В зависимости от Вашей системы команда как это откроет тот файл:

$ sudo nano /etc/hosts

Просто поместите строки как это там и сохраните:

<IP>    <HOSTNAME> <SHORTNAME #1> <SHORTNAME #2> ....

Например:

192.168.1.1    www.anothersite.com wwwanother
3
14.05.2015, 23:59
2 ответа

Сначала получите код ошибки (может быть полезен и stderr... Кто делает скрипт w/o протоколирующим ошибки...?). Возможно, что либо 'su', либо 'scp' вернул retVal>0.

Отрывок из исходного кода SCP для OSX:

 // I'd put my bet for this case..
 void
 lostconn(signo)
    int signo;
 {
    if (!iamremote)
        fprintf(stderr, "lost connection\n");
    exit(1);
 }

Убедитесь, что после сбоя целевой файл точно такой же, как и исходный файл....

Снип из su manpage:

EXIT VALUES

On success, su возвращает значение выхода команды, которую он выполнил.

Если эта команда была прервана сигналом, su возвращает номер этого сигнала плюс 128.

Если su должно убить команду (потому что его попросили прекратить, а команда не завершилась вовремя), su возвращает значение 255.

Снова... Без кода выхода или содержания stderr мы ничего не можем сделать, кроме как продолжать гадать...

2
27.01.2020, 21:16

Проще всего установить их в раздел Ubuntu для загрузки. GRUB будет работать и загружать Ubuntu для вас, даже если вы установите их в раздел Android, но вы немного потеряете на скриптах Ubuntu. Другое решение - сохранить ядро и initrd в Android/boot и symlink Android/boot в Ubuntu/boot. Оба работают.

В общем случае ядро и initrd могут находиться в любом доступном GRUB разделе. GRUB считывает их в память, вы передаете root = UUID = xxxxxxxxx cmdline ядру, чтобы оно знало, где находится корень, и ядро забирает его оттуда. GRUB может считывать подавляющее большинство файловых систем, но некоторые могут нуждаться в корректировке в виде предварительных нагрузок модулей. LVM или полное шифрование диска (LUKS). Arch Wiki как очень хорошая статья о конфигурации GRUB (как и большинство других вещей GNU/Linux).

ПРАВКА:

Видели вашу редакцию. Похоже, вы запускаете GRUB Legacy вместо GRUB2. В этом случае вики-страница представляет собой это .

EDIT 2: Уточнено второе предложенное решение, где фактически сохранить ядро/initrd.

-121--185789-

Это SELinux. Несмотря на то, что я остановил и отключил его с помощью systemctl , мне все равно нужно было использовать /usr/bin/setenforce 0 . Вход без пароля теперь работает так, как ожидалось.

-121--114218-

Я сделал пробел на scp файла. Мне кажется, что scp не использует временное имя файла, как wget , фактически проверяет существование целевого файла и открывает его с помощью O _ WRONLY 'O _ CREAT . Файл назначения должен существовать, если scp становится слишком большим, чтобы фактически иметь данные для записи.

Нет пути «гонки» между существованием файла назначения и проверкой его существования. Оболочка должна получить SIGCHLD из scp , выходящего, чтобы получить статус выхода и принять решение о ненулевом состоянии. Я уверен, что ядро позаботится об имени файла, существующего при завершении процесса scp . Создание файлов должно быть атомарным. Не пытайтесь добавить сон , это не поможет.

Единственный способ попасть в тест существования целевого файла ( [-f $ scptarget] ) - это выход scp со статусом 0 (ноль). Это, безусловно, возможно, чтобы файл существует, но имеют состояние ошибки. Проверьте правильность и целостность файла $ scptarget при возникновении ошибки? Возможно, вы закончите с частичным файлом или искалеченным файлом.

Я думаю, что, чтобы выяснить, что происходит, вы должны использовать 2 , если конструирует, один для статуса выхода scp , а второй для существования целевого файла. Убедитесь, что сообщения различаются и что в журнале $? указан статус выхода процесса scp .

3
27.01.2020, 21:16

Теги

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