Вывод в несколько файлов в crontab

#!/bin/bash

newdir=/absolute/path/output
olddir=/absolute/path/project

find $olddir -name '*log' | while read line ; do
  if [ "$olddir" == "$( basename "$line" )" ] ; then
    #just move the file if there are no subdirectories
    mv "$line" "$newdir"
  else
    #1) replace old project dir with nothing 
    #2) replace all slashes with hashes
    #3) set new outdir as prefix
    #4) hope that there are no colons in the filenames
    prefix="$( sed -e "s:$olddir::" -e 's:/:#:g'  -e "s:^:$newdir/:" <<<"$( dirname "$line")" )"
    mv "$line" "$prefix"#"$( basename "$line" )"
  fi
done 

-121--166427-

Натти Нарвал больше не поддерживается Ubuntu. Поэтому нельзя использовать apt-get для установки ncurses.

У вас есть следующие варианты:

  • обновите до поддерживаемой версии Ununtu . Но так как ваша версия больше не поддерживается, вы не можете легко обновить на месте, но вам лучше установить поверх. Так что резервное копирование !!!
  • установить ncurses из источников. Получите источник и скомпилируйте его. Обратите внимание, что это может быть непростой задачей.
  • найдите "совместимое" хранилище для Natty, которое можно использовать вместо Ubuntu. Может быть, Debian может сработать, но вам нужно найти, из чего происходит Debian Natty. Это может не сработать!

Я бы рекомендовал попробовать обновить до последней версии Ubuntu. Вы также получите преимущества от обновлений безопасности.

-121--209652-

/bin/true и /bin/false не обязательно выполнять какие-либо системные вызовы, кроме требуемого выхода (2) . (GNU true и false являются динамически связанными исполняемыми файлами ELF, поэтому, конечно, вы получаете обычный запуск котельной плиты).

Если вы пишете программу в asm, которая пытается вернуться из _ start , или которая просто продолжает выполняться, она будет сегментирована, когда выполнение перескакивает на несопоставленную страницу. Таким образом, вы технически можете избежать вызова exit () , но это не стоит того.: P

Вы, возможно, читали, что простейшая реализация true (1) является пустым файлом. Это работает, только если вызывается из оболочки.

touch true
chmod 755 true
./true
echo $?
 0
strace ./true
 write(2, "strace: exec: Exec format error\n", 32) = 32
 exit_group(1)

Если вы хотите сделать свою собственную минимальную реализацию true , то на amd64 вы можете сделать:

cat > exit64.s <

В отличие от GNU true , эта реализация не поддерживает --help и -version ! (например, команда true --version для пропуска shell-builtin.)

См. также Руководство по Whirlwind по созданию действительно Teensy ELF Executables для Linux , если вы думали, что это аккуратно.

0
19.01.2018, 03:50
0 ответов

Теги

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