User Tools

Site Tools


bash:запуск_скрипта_единожды

Linux Logon Script

Запустить скрипт при входе пользователя в систему можно используя несколько функциональных возможностей Linux:

  • <html>~/.bash_profile</html>
  • <html>~/.bash_login</html>
  • <html>~/.profile</html>
  • <html>/etc/profile.d</html>

Скрипт можно разместить в каталоге <html>/etc/profile.d</html> в данном случае он исполнится для всех пользователей, для конкретного же пользователя, путь к скрипту можно указать в любом из файлов, в данном случае это будет <html>~/.profile</html>.

Логика скрипта

Можно описать логику, которая по факту выполнения будет создавать файл, назовем его <html>once_done</html>, скрипт при запуске будет проверять его наличие, если файла нет, будет выполнено действие.

#!/bin/bash  
 
if [ -e $HOME/.once_done ]  
then  
 echo "No action for provisioning."  
else  
 echo "Run once is Done!" >> $HOME/run-once.txt  
 touch $HOME/.once_done  
fi

Код сохраним в файле <html>provision.sh</html> в каталоге пользователя, далее сделаем скрипт исполняемым:

chmod +x provision.sh

Настройка .profile

Собственно это одна строчка, которую можно добавить в конец файла:

. ${HOME}/provision.sh

Проверка

Можно совершить выход из системы используя команду <html>exit</html>, после входа проверить наличие файла <html>run-once.sh</html> в каталоге пользователя, с содержимым Run once is Done!.

bash/запуск_скрипта_единожды.txt · Last modified: 2023/04/06 10:18 (external edit)