Пользовательские файлы журнала перезаписываются автоматически

У меня есть сценарий удара Linux, который я использую для добавления текста в файл (при помощи >>). Этот файл работает на начальной загрузке и находится в цикле, который работает каждую секунду. Если перезагрузки компьютера, которые это продолжит от того, где это кончило. Мой сценарий работает столь же ожидаемый в течение многих часов в конце. Однако я заметил, что иногда файл, к которому я регистрируюсь, перезаписывается. Я не уверен почему. Я использую >>, нет >.

Интересные места:

  1. Я вхожу в систему nvidia jetson TX1.

  2. Я обрабатываю, я раньше работал tx_masterlogger.sh как услуга:

    • sudo chmod a+x tx1_masterlogger.sh
    • sudo chmod 777 tx1_masterlogger.sh
    • переместите tx1_masterlogger.sh в/etc/init.d
    • sudo update-rc.d tx1_masterlogger.sh defaults

Вот мой код:

#!/bin/bash
#Boot Logger - to log boot times.
./home/ubuntu/logs/scripts/tx1_bootlogger.sh &

#Dmesg Logger 
sudo dmesg -T --follow >> "/home/ubuntu/logs/dmesg/dmesg_$(date 
+"%Y_%m_%d").log" &

   while :; do

      #Powersupply Logger
      ./home/ubuntu/logs/scripts/tx1_powersupplylogger.sh &

sleep 1
done

Кроме того, вот tx1_powersupply.sh файл:

#!/bin/bash
#Channels
  channel0='/sys/devices/platform/7000c400.i2c/i2c-1/1- 
0040/iio:device0/'

#Write headers if file is newly created
if [ ! -f "/home/ubuntu/logs/powersupply/powersupply_$(date +"%Y_%m_%d").csv" ]; then

echo 'UTC Time,'\
'crit_current_limit_0,'\
'in_current0_input,'\
'in_current0_trigger_input,'\
'in_power0_input,'\
'in_power0_trigger_input,'\
'in_voltage0_input,'\
'rail_name_0,'\
'ui_input_0,'\
'warn_current_limit_0,'\
'crit_current_limit_1,'\
'in_current1_input,'\
'in_current1_trigger_input,'\
'in_power1_input,'\
'in_power1_trigger_input,'\
'in_voltage1_input,'\
'rail_name_1,'\
'ui_input_1,'\
'warn_current_limit_1,'\
'crit_current_limit_2,'\
'in_current2_input,'\
'in_current2_trigger_input,'\
'in_power2_input,'\
'in_power2_trigger_input,'\
'in_voltage2_input,'\
'rail_name_2,'\
'ui_input_2,'\
'warn_current_limit_2' >> 
 "/home/ubuntu/logs/powersupply/powersupply_$(date +"%Y_%m_%d").csv"

fi

#VDD_IN PARAMTERS
path_crit_current_limit_0=$channel0'crit_current_limit_0'
path_in_current0_input=$channel0'in_current0_input'
path_in_current0_trigger_input=$channel0'in_current0_trigger_input'
path_in_power0_input=$channel0'in_power0_input'
path_in_power0_trigger_input=$channel0'in_power0_trigger_input'
path_in_voltage0_input=$channel0'in_voltage0_input'
path_rail_name_0=$channel0'rail_name_0'
path_ui_input_0=$channel0'ui_input_0'
path_warn_current_limit_0=$channel0'warn_current_limit_0'

crit_current_limit_0=$(cat $path_crit_current_limit_0)
in_current0_input=$(cat $path_in_current0_input)
in_current0_trigger_input=$(cat $path_in_current0_trigger_input)
in_power0_input=$(cat $path_in_power0_input)
in_power0_trigger_input=$(cat $path_in_power0_trigger_input)
in_voltage0_input=$(cat $path_in_voltage0_input)
rail_name_0=$(cat $path_rail_name_0)
ui_input_0=$(cat $path_ui_input_0)
warn_current_limit_0=$(cat $path_warn_current_limit_0)

#VDD_GPU PARAMETERS
path_crit_current_limit_1=$channel0'crit_current_limit_1'
path_in_current1_input=$channel0'in_current1_input'
path_in_current1_trigger_input=$channel0'in_current1_trigger_input'
path_in_power1_input=$channel0'in_power1_input'
path_in_power1_trigger_input=$channel0'in_power1_trigger_input'
path_in_voltage1_input=$channel0'in_voltage1_input'
path_rail_name_1=$channel0'rail_name_1'
path_ui_input_1=$channel0'ui_input_1'
path_warn_current_limit_1=$channel0'warn_current_limit_1'

crit_current_limit_1=$(cat $path_crit_current_limit_1)
in_current1_input=$(cat $path_in_current1_input)
in_current1_trigger_input=$(cat $path_in_current1_trigger_input)
in_power1_input=$(cat $path_in_power1_input)
in_power1_trigger_input=$(cat $path_in_power1_trigger_input)
in_voltage1_input=$(cat $path_in_voltage1_input)
rail_name_1=$(cat $path_rail_name_1)
ui_input_1=$(cat $path_ui_input_1)
warn_current_limit_1=$(cat $path_warn_current_limit_1)

#VDD_CPU PARAMETERS
path_crit_current_limit_2=$channel0'crit_current_limit_2'
path_in_current2_input=$channel0'in_current2_input'
path_in_current2_trigger_input=$channel0'in_current2_trigger_input'
path_in_power2_input=$channel0'in_power2_input'
path_in_power2_trigger_input=$channel0'in_power2_trigger_input'
path_in_voltage2_input=$channel0'in_voltage2_input'
path_rail_name_2=$channel0'rail_name_2'
path_ui_input_2=$channel0'ui_input_2'
path_warn_current_limit_2=$channel0'warn_current_limit_2'

crit_current_limit_2=$(cat $path_crit_current_limit_2)
in_current2_input=$(cat $path_in_current2_input)
in_current2_trigger_input=$(cat $path_in_current2_trigger_input)
in_power2_input=$(cat $path_in_power2_input)
in_power2_trigger_input=$(cat $path_in_power2_trigger_input)
in_voltage2_input=$(cat $path_in_voltage2_input)
rail_name_2=$(cat $path_rail_name_2)
ui_input_2=$(cat $path_ui_input_2)
warn_current_limit_2=$(cat $path_warn_current_limit_2)

#Write to file
echo "`date -u`,"\
${crit_current_limit_0}','\
${in_current0_input}','\
${in_current0_trigger_input}','\
${in_power0_input}','\
${in_power0_trigger_input}','\
${in_voltage0_input}','\
${rail_name_0}','\
${ui_input_0}','\
${warn_current_limit_0}','\
${crit_current_limit_1}','\
${in_current1_input}','\
${in_current1_trigger_input}','\
${in_power1_input}','\
${in_power1_trigger_input}','\
${in_voltage1_input}','\
${rail_name_1}','\
${ui_input_1}','\
${warn_current_limit_1}','\
${crit_current_limit_2}','\
${in_current2_input}','\
${in_current2_trigger_input}','\
${in_power2_input}','\
${in_power2_trigger_input}','\
${in_voltage2_input}','\
${rail_name_2}','\
${ui_input_2}','\
${warn_current_limit_2} >> 
"/home/ubuntu/logs/powersupply/powersupply_$(date +"%Y_%m_%d").csv"
2
задан 30 October 2018 в 01:39

1 ответ

Почему Вы не используете journalctl?

С systemd наилучший вариант. https://manpages.debian.org/stretch/systemd/journalctl.1.en.html

0
ответ дан 2 December 2019 в 06:53

Другие вопросы по тегам:

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