如何在关机或重启时执行OpenSSL命令,实现文件加密与时间记录?
实现关机/重启时自动加密文件并记录时间
我最近折腾了个小需求——每次关机或者重启的时候自动加密指定文件,还得把操作时间记录下来,整理了完整步骤分享给大家:
1. 编写执行加密和日志记录的bash脚本
先创建并编辑一个bash脚本,用来完成加密文件和记录时间的操作:
vim log.sh
把以下内容写入脚本(可以根据自己的需求修改密钥、待加密文件路径和日志文件路径):
# 设置加密密钥 key="123456" # 使用OpenSSL的3DES算法加密$HOME/test文件,输出为test.asc openssl enc -des3 -a -salt -in $HOME/test -k ${key} -out $HOME/test.asc # 将当前时间追加到日志文件中 date >> /home/log.info
2. 创建systemd服务单元文件
要让脚本在关机/重启前自动执行,我们需要借助systemd的服务单元来配置:
sudo vim /etc/systemd/system/log.service
写入以下内容(补全之前没写完的[Install]段内容):
[Unit] Description=Run command at shutdown # 确保服务在关机、重启目标执行前运行 Before=shutdown.target reboot.target [Service] # 定义为一次性任务类型 Type=oneshot # 让服务启动后保持活跃状态,这样ExecStop指令才会在关机时触发 RemainAfterExit=true # 指定关机时要执行的脚本路径 ExecStop=/bin/bash /home/log.sh [Install] # 设置服务在多用户模式下激活 WantedBy=multi-user.target
3. 激活并启用服务
最后别忘了让systemd加载新的服务配置,并且设置开机自动启用:
# 重新加载systemd配置 sudo systemctl daemon-reload # 启用服务 sudo systemctl enable log.service
这样设置之后,每次关机或者重启系统时,都会自动执行加密操作并记录时间啦!
内容的提问来源于stack exchange,提问作者showkey
相关产品推荐
相关产品推荐

