我需要从外部位置下载文件,例如http://s3.amazonaws.com/my-bucket/config.xml然后在服务器启动时将该文件保存到 /etc/config.xml。
在 Fedora 中执行此操作的最佳方法是什么?
我认为我需要一些启动脚本,因为每次重启/启动时都需要执行此脚本。
需要澄清的是,该过程如下:
- 服务器启动
- 服务器从该位置下载文件
- 服务器运行命令“serivce httpd start”
答案1
您可以使用计划任务指令@reboot
在每次系统启动时运行脚本。编辑/etc/crontab
@reboot root cd /to/where/xml/file/lives && /usr/bin/wget -q http://s3.amazonaws.com/my-bucket/config.xml && /sbin/service http start
根据 IgnacioVazquez-Abrams 的评论,您需要在启动时使用 chkconfig 命令禁用 httpd,例如
chkconfig httpd off
答案2
您只需将命令放入 即可/etc/rc.local
。此脚本在启动过程结束时运行,因此您的网络接口和设置将已初始化。您可能必须禁用现有的 httpd 启动脚本(可能在 中/etc/init.d
),方法是将其设为不可执行:
sudo chmod -x httpd
或者简单地将其移动到另一个位置。
有关启动顺序的更多信息,请参见: https://wiki.archlinux.org/index.php/Arch_Boot_Process
它可能不是特定于您的发行版,但该过程在任何现代发行版上通常非常相似。
答案3
编写一个在network
/NetworkManager
和之间运行的启动脚本httpd
。请参阅/usr/share/doc/initscripts-*/sysvinitfiles
以了解更多详细信息。