Я работаю над Beaglebone Black под Debian.
Я пишу правила Udev для управления картой µSD.
Что мне нужно сделать для Udev: когда мой µSD подключен, подключите µSD к /media/sdcard
(он делает) и выполните скрипт, который:
- Остановите rsyslog.service (это делает)
- Переместить /var /log в /media /sdcard (это НЕ)
- создайте ссылку из /var /log на /media /sdcard /log (для продолжения записи в журнал, но на SD-карте) (это не так, но /media /sdcard /log не существует, поскольку предыдущий шаг не удался)
- перезапустите службу rsyslog (она работает)
Вот скрипт, который делает то, что я только что описал:
logger 'Enterring /root/ServolineScripts/LogsonSDcard.sh script'
logger 'Refreshing Mountinglogs'
sudo rm /var/log/Mountinglogs.log
logger 'Stopping syslog service'
sudo /etc/init.d/rsyslog stop
sudo mv /var/log /media/sdcard/
sudo ln -s /media/sdcard/log /var/log
sudo /etc/init.d/rsyslog start
logger 'Successfully restarted rsyslog, logs are back on syslog!'
logger 'Restarted syslog service'
logger 'Quitting /root/ServolineScripts/LogsonSDcard.sh script'
Я не уверен, почему он не перемещает каталог /var /log. Этот же скрипт выполняется вручную с помощью простого sh /root/ServolineScripts/LogsonSDcard.sh ...
Интересно, это проблема прав ...