我想直接将服务器日志发送到 s3 存储桶。
我为此创建了一个脚本,它将每天运行一次,现在我希望它在服务器重启或关闭时运行。
为此,我将这个脚本保存在 /etc/init.d
目录中,并在 /etc/rc6
和 /etc/中创建了一个符号链接(symbolic link)rc0
目录。
为什么在服务器重新启动或关闭时它没有运行?
sudo tar -czvf otaaccess.tar.gz /var/log/nginx/access.log
INSTANCE=$(cat /var/tmp/aws-mon/instance-id)
sudo aws s3 cp /home/ec2-user/otaaccess.tar.gz s3://hubbleserver-logs/ota/access/`date +%Y-%m-%dT%H:%M`-$INSTANCE.log
sudo truncate -s 0 /var/log/nginx/access.log
sudo rm /home/ec2-user/otaaccess.tar.gz
最佳答案
我认为“ secret ”是创建一个锁定文件,就像我在下面的初始化脚本中所做的那样。创建该锁定文件后,它应该可以在系统重新启动时使用。
#!/bin/bash
# Description: abc script
# chkconfig: 3 99 01
mylog="/var/log/abc.log"
case "$1" in
start)
touch /var/lock/subsys/abc
;;
stop)
echo "Before init 6" > $mylog
date >> $mylog
;;
esac
---- 一些命令-----
# chkconfig --add abc
# chkconfig --list abc
abc 0:off 1:off 2:off 3:on 4:off 5:off 6:off
关于linux - 如何在关机或重启前在服务器上运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651554/