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

Bash - Как вывести две команды в файл?

Я хочу вывести две команды в файл. Я хочу, чтобы точное время (дата) И температура (датчики) отправлялись в файл каждые 5 минут. Я знаю, как вывести в файл одну команду, а две? Как написать такой скрипт?

Что-то вроде этого? (В цикле, cron или чем угодно, что вы сейчас используете.)

(date; my_sensor_command) >> log_file

Сгруппируйте все команды в круглые скобки, потому что они будут выполняться во вспомогательной оболочке, из которой вы легко можете перенаправить вывод:

 while sleep 5m
 do
         (date +%Y-%m-%d_%H:%M | tr -d '\012'; echo -n ' '; \
         /etc/rc.d/init.d/lm_sensors status | grep '^CPU Temp') >> /your/log/file

 done

Если я правильно понимаю ваш вопрос - вы хотите вывести два значения в один и тот же файл - тогда это может быть то, что вы ищете:

TIME="`date`"
SENSOR="56"

echo "$TIME $SENSOR" >> /path/to/a/file

Возможно, я неправильно понимаю вопрос, но похоже, что все ответы добавляются в один файл. Я прочитал ваш вопрос о том, что вам нужен одинаковый вывод в 2 файлах. Если это было то, что вы ищете, тройник - способ добиться этого:

echo "Материал для вывода" | tee -a file1 file2

Ссылаясь на локальный пост, вы можете установить cron следующим образом:


$ crontab -e

* / 5 * * * * (эхо date +%Y%m%d%H%M%S | tr -d '\ 012'; эхо -n ''; датчики | grep "CPU Temp:" | awk '{print $ 3}') >> /var/log/sensors.log