Назад | Перейти на главную страницу

скрипт, запускающий неинтерактивный fdisk, не работает из cron

Когда я запускаю следующий скрипт из командной строки, я получаю полный вывод в /tmp/Fdisk.sh.

Но если я запускаю тот же сценарий из cron, я получаю только частичный вывод.

Пропускает ли оболочка какую-то инструкцию при запуске из cron?

Мой сценарий оболочки:

SHELL=/bin/sh
LC_NUMERIC=en_US.utf8

/usr/bin/printf "\nm\np\nl\nq" | fdisk /dev/mmcblk0

Запись CRON:

* * * * * /home/WiMi/tryFdisk.sh >> /tmp/Fdisk.txt

Вывод при запуске из cron:

cat /tmp/Fdisk.txt

Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes
4 heads, 16 sectors/track, 1948992 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

        Device Boot      Start         End      Blocks  Id System
/dev/mmcblk0p1              33     1948992    62366720  83 Linux

Основная проблема здесь - отсутствие команд, передаваемых в fdisk неинтерактивным способом.

Я отдал команды, и несколько из них были пропущены.

m - отобразить экран справки - пропущено p - распечатать текущую таблицу разделов - выполнено l - перечислить известные типы разделов - пропущено q - выйти - выполнено

Если я запустил один и тот же сценарий из командной строки, все они будут выполнены, а результат будет виден в файле /tmp/Fdisk.txt.