我正在运行嵌入式 Linux (Dreadnaught),我希望能够在用户登录时手动在系统日志中输入一行,并将其他命令的结果存储在系统日志中。例如:
echo ======== Setting chat and Options for Insys >>/var/log/messages
cat /etc/ppp/options >> /var/log/messages
Syslog 在 /etc/inittab 中启动:
::respawn:/sbin/syslogd -n -s 200 -b 2 -S -m0
我有一些别名来执行常见任务,并且我希望系统日志在运行时更新:
alias Insys='echo =================== Setting chat and Options for Insys >> /var/log/messages; cp /var/config/tw_con_Insys.lge /var/config/tw_con.lge; cp /etc/ppp/peers/tw_options_Insys /etc/ppp/peers/tw_options; con; echo =================== Complete >> /var/log/messages'
alias setup='echo =================== options ===================; echo ""; echo ""; cat /etc/ppp/options; echo ""; echo ""; echo =================== chat ===================; echo ""; echo ""; cat /var/config/tw_con.lge; echo ""; echo ============================================;'
setup 命令写入终端,我希望它写入系统日志,即 setup>>/var/log/messages。
问题是 /var/log/messages 属于 root,而不是用户。我可以手动运行
su -c 'chmod 777 /var/log/messages'
,它提示我输入 root pwd,然后我可以运行我的快捷方式并且它们可以工作。但是,每次日志滚动到 messages.0 并创建新消息时,我都会丢失权限并且必须再次运行它。
我尝试为此 chmod 创建一个别名,以便可以在运行自定义脚本之前运行它:
alias userlog='su -c ''chmod 777 /var/log/messages'''
别名被接受,但不运行。
[user@Dreadnaught_TEP1 etc]$ userlog
su: unknown user 777
感谢您的帮助!
答案1
感谢@MarkPlotnick 解决了!这记录器命令可以满足我的需要,不需要 chmod 或类似的东西。
alias Insys='logger =================== Setting chat and Options for Insys ; cp /var/config/tw_con_Insys.lge /var/config/tw_con.lge; cp /etc/ppp/peers/tw_options_Insys /etc/ppp/peers/tw_options; con; logger =================== Complete; setup '
alias setup='logger =================== options ===================; cat /etc/ppp/options | logger; logger =================== chat ===================; cat /var/config/tw_con.lge | logger; logger ============================================'