Некоторое время назад у меня была такая же проблема.
Добавление /bin/bash помогло мне.
Пример:
0****/bin/bash /путь _к _вашему каталогу _script/script.sh > /output _
Причина :При запуске сценария оболочки вы должны определить, где должен выполняться сценарий,поэтому, вероятно, вам нужно использовать /bin/sh, /bin/zsh или что-то еще, чтобы запустить скрипт внутри.
Cron сам не знает, где запустить скрипт.
Также проверьте /var/log/syslog и /var/mail/root, чтобы узнать причину.
Со страницы руководства Solaris:
DESCRIPTION
These functions are used to obtain entries describing hosts.
An entry can come from any of the sources for hosts speci-
fied in the /etc/nsswitch.conf file. See nsswitch.conf(4).
These functions have been superseded by
getipnodebyname(3SOCKET), getipnodebyaddr(3SOCKET), and
getaddrinfo(3SOCKET), which provide greater portability to
applications when multithreading is performed or technolo-
gies such as IPv6 are used. For example, the functions
described in the following cannot be used with applications
targeted to work with IPv6.
Как видите, функция getaddrinfo()
также входит в стандарт POSIX и поддерживается...
Текущий совместимый с POSIX -способ (попытаться )определить «каноническое» полное доменное имя текущего хоста состоит в вызовеgethostname()
для определения настроенного имени хоста, а затемgetaddrinfo()
для определения соответствующей адресной информации..
Игнорирование ошибок:
char buf[256];
struct addrinfo *res, *cur;
struct addrinfo hints = {0};
hints.ai_family = AF_UNSPEC;
hints.ai_flags = AI_CANONNAME;
hints.ai_socktype = SOCK_DGRAM;
gethostname(buf, sizeof(buf));
getaddrinfo(buf, 0, &hints, &res);
for (cur = res; cur; cur = cur->ai_next) {
printf("Host name: %s\n", cur->ai_canonname);
}
Результаты сильно зависят от конфигурации системы и преобразователя.