Linux/UNIX:注销时运行命令

时间:2020-01-09 10:42:21  来源:igfitidea点击:

我已经编写了一个Perl脚本,该脚本可以为我连接到我们的中央服务器,它允许我提供数据,以便稍后创建时间表。
使用bash shell从Apple OS X或者Linux/UNIX工作站注销时,如何运行脚本?
包括bash在内的几乎所有现代shell都允许您在注销时运行run命令。
通常,这用于:

  • 使用清除命令清理屏幕。
  • 删除历史记录和其他临时文件。
  • 运行命令或者脚本等。

注销文件名

注销时,将运行.logout中的命令。

  • bash shell:~/.bash_logout
  • tcsh/csh:~/.logout

编辑$HOME/.bash_logout并添加命令:

$ vi ~/.bash_logout

登出配置示例:

if [ "$SHLVL" = 1 ]; then
    #clear screen
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
 
    # delete mysql history
    [ -f $HOME/.mysql_history ] && /bin/rm $HOME/.mysql_history
 
    # Update ip accounting
    [ -x /usr/bin/ip_accouting ] && /usr/bin/ip_accouting -u "$USER" -a
 
   # call your script here
   [ -x /usr/local/bin/timesheet_client.pl ] && /usr/local/bin/timesheet_client.pl
fi

关于shell和Bourne/KSH壳的说明

较旧的UNIX shell和Bourne/ksh shell没有注销文件。
因此,编辑~/.profile文件,执行:

$ vi ~/.profile

接下来添加以下行:

trap '. $HOME/.my_shell_logout; exit' 0

保存并关闭文件。
最后创建$HOME/.my_shell_logout,执行:

$ vi $HOME/.my_shell_logout

配置示例

# call your script here
  if [ -f /usr/local/bin/timesheet_client.pl ] 
  then 
    /usr/local/bin/timesheet_client.pl
  fi