我为管理任务等创建了一些脚本,使它们独立于环境--每个依赖项都是通过参数注入的。但是,每次运行时提供脚本来编写常用的依赖项是很烦人的,而且我不想在其中硬编码任何本地信息,所以我创建了包装器。我把我的一般脚本放在$HOME/bin中,但是我应该把包含本地信息的包装放在哪里,并且只用于加速调用?
例如:考虑制作并发送给给定ftp服务器加密系统备份的脚本。它是作为一个通用脚本创建的,可以与任何gpg公钥或ftp服务器一起使用,但是我总是只使用特定的公钥并将其上传到特定的ftp服务器,因此我用这些信息创建了一个包装器。这个通用脚本实际上在/root/bin中,因为这是管理工具,但是在哪里放置这个包装器呢?
发布于 2014-02-18 08:36:52
忘了包装材料吧:-)
您只需要在.file目录中提供一个带有用户配置选项的$USER (点文件)。您也可以在/etc中为系统范围的配置选项提供一个。
让脚本检查这些.fils (点文件),如果它们存在,就使用它们。
哈,.
发布于 2014-02-09 15:08:46
我相信你应该再抽象一个层,这样你就会得到这样的模式。
GenericName
calls -> Architecture_or_Server_or_Domain_or_User_specific
calls -> AllArchServer Script使用备份的示例
do_machine_backup是人们使用的一个名称(运行,添加到cron作业等)
它的任务是训练运行在/on/by中的环境/服务器(可能是用户)。假设您有3个环境dev/test/prod,它可以解决这个问题,然后调用Environment_Specific脚本。
do_dev_machine_backup -type user | db | web
do_test_machine_backup ...
do_prod_machine_backup ...
or
do_centos_machine_backup -env dev|test|prod ...
...这样就可以知道域/环境,即backup_host、要备份的内容、要使用的键、日志文件应该放在哪里等。
do_gen_machine_backup <src dir> <dst host> dst dir> <host_key> ... many args
我会制作这些脚本(而不是别名或函数),混合(两者兼具)只会使它在开发过程中调试/开发/维护变得更加复杂。您只需要节省毫秒,与您使用它们的频率和脚本的运行时间长度相比,这可能会使这些函数/别名而不是脚本变得无关紧要。
我会把所有的东西放在一个地方,任何时候你都想,但一个顶级,这使得设置新服务器很容易,安装一个目录,并可选地,添加一个目录到一个路径。如/usr/local/CompanyShortName和从这里,您可以根据您的需求,现在和未来的./bin ./sbin/ ./config ./keys。
这是很难具体的,所以我的建议是有一点一般性,希望一些原则,建立一个环境,并可能是成果,以进一步的评论。
https://unix.stackexchange.com/questions/114360
复制相似问题