Questions tagged «scripting»

在系统管理的上下文中,计算机编程的一种形式非常适合于自动执行任务。

8
有什么理由在zsh上使用bash吗?[关闭]
我很好奇为什么有人要运行bash而不是zsh。我的意思是zsh与bash完全向后兼容。不要误会我的意思:我不喜欢bash或其他任何东西。我只是真的想知道使用它比zsh有什么好处。 那么在zsh上使用bash有什么原因呢?
33 bash  scripting  shell  zsh 

5
在哪里可以安装自定义bash脚本?
我将要安装“ leiningen”,它是clojure编程语言的bash脚本,具有很多用处... ...但是我不确定在Linux中将可执行脚本放到哪里合适。系统,使其永久且稳定可用。 我认为/ home中的任何地方都不有意义,但是我不知道应该使用哪个目录/目录。 / usr / share?

5
Linux管理员如何提高他们的Shell脚本和自动化技能?
在我的组织中,我与一组NOC员工,刚起步的初级工程师和少数高级工程师一起工作。所有的重点都放在Linux上。公司培养人才的一个有趣步骤是,从NOC到高级工程师队伍之间存在一条道路。将人才库视为一个相对较新的人才,我发现技能组中的差异会随着时间的流逝而逐渐增加... 有些工程师非常了解一种或几种特定技术,并且经常沉浸其中……例如,MySQL,防火墙,SAN存储,负载均衡器... 还有其他一些通才,可以使用多种技术。 所有人都学习了足够的Linux(命令,进程)以执行他们每天需要和使用的内容。 一些员工之间的一个区别因素是他们对脚本,自动化和配置管理方法的接受程度。例如,我们有两名工程师负责大部分Amazon AWS CloudFormation工作,另一名工程师负责处理大部分Puppet基础架构。也许有四分之一的工程师精通BASH Shell脚本。 在上下文看着这个令人难以置信的高要求在就业市场上的DevOps技能,我很好奇其他组织如何培养这些技能的发展和壮大自己的内部人才。脚本似乎不是一个特别可教的概念。 系统管理员如何改善其Shell脚本? 对于那些不/不能跟上DevOps范例的工程师,还有地方吗? 我们是否只是简单地假设随着这些技术的发展就会有人落后?这样可以吗?



8
bash脚本中的多选菜单
我是一名新手,但是我想创建一个脚本,允许用户从选项列表中选择多个选项。 本质上,我想要的是类似于以下示例的内容: #!/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello" ]; then echo Hello World else clear echo bad option fi done (摘自http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html#ss9.1) 但是,我的脚本将具有更多选项,并且我希望允许选择倍数。所以像这样: 1)选项1 2)选项2 3)选项3 4)选项4 5)完成 对他们所选择的对象有反馈也会很棒,例如,在他们已经选择的对象旁边加号。例如,如果您选择“ 1”,我想翻页以清除并重新打印: 1) Option 1 + …
28 bash  scripting 

3
将默认答案传递给apt-get软件包安装问题?
我正在尝试为新服务器编写配置脚本,第一步是安装一系列必需的软件包,例如MySQL,phpMyAdmin等。apt-get install但是,当dpkg尝试配置它们时,它会要求您提供很少的选项,例如MySQL根密码,phpMyAdmin密码,要使用的服务器等。 由于我很可能会将这个脚本传递给不太可能阅读提示的同事,并且我希望直接启动它然后走开,所以我想知道如何传递一系列“默认”答案/要使用的值。这可能包括在命令行上传递的用户名/密码/其他动态值。 - 我意识到在脚本中包含密码是一个安全问题,但是我愿意忽略它,尤其是在更普遍的意义上,安装软件包可能会对此给出答案。

13
使用%time%变量,批处理脚本需要前导零
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我在DOS脚本中遇到了一个错误,该错误使用日期和时间数据进行文件命名。问题是我最终以间隔结束,因为时间变量没有在小时<10时自动提供前导零。所以运行> echo%time%会返回:'9:29:17.88'。 有谁知道有条件地填充前导零以解决此问题的方法吗? 更多信息:我的文件名设置命令是: set logfile=C:\Temp\robolog_%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log 最终是:C:\ Temp \ robolog_20100602_ 93208.log(上午9:23)。 这个问题与此有关。 谢谢

13
如何鼓励Windows管理员选择脚本?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 当我在第一份工作中担任管理员时,我感到沮丧的是,我们对Windows服务器的管理过程是一系列的点击操作。我们永远无法将Unix服务器的效率水平与Unix服务器相提并论,后者具有一组Shell脚本来自动执行许多工作。我很快就读到有关WSH和ADSI的信息,并且不花时间学习用脚本可以实现多少自动化。 但是,这是一个很大的问题-我的Windows同事几乎没有一个真正对学习脚本感兴趣。他们似乎对手动单击鼠标的琐事感到满意,并且从未为使用脚本代表他们完成工作的前景感到兴奋。尽管效率明显提高,但我还是很难说服他们掌握脚本技能。此后,我离开该职位去从事全职软件开发生涯。 在各种环境和不同的客户中工作了将近十年,我仍然遇到Windows管理员,他们主要具有这种一般的“心情”,他们会尽可能避免编写脚本。尽管可访问性水平不断提高,但Windows服务器技术仍在为脚本和自动化开放。我几乎可以肯定,大多数管理员都是管理员,因为他们绝对讨厌执行任何类型的编程职责。有什么方法可以鼓励和激励管理员脚本可以从长远来看可以真正帮助他们?

7
Bash脚本:要求脚本以root身份(或使用sudo)运行
我正在尝试编写bash脚本(在Ubuntu中),该脚本将使用tar备份目录。 如何在脚本中进行检查,使其只能以root身份(或使用sudo)运行? 例如,如果用户运行该脚本,则应说该脚本必须以sudo特权运行,然后退出。如果脚本以root身份执行,它将继续通过检查。 我知道必须有一个简单的解决方案,但我只是无法通过谷歌搜索找到它。

3
我可以使用rsync创建仅更改文件的列表吗?
我在bash脚本中使用rsync来使文件在一些服务器和NAS之间保持同步。我遇到的一个问题是尝试生成rsync期间已更改的文件列表。 这个想法是,当我运行rsync时,我可以将已更改的文件输出为文本文件-希望在内存中有一个数组-然后在脚本存在之前,我只能对更改后的文件运行chown 。 有没有人找到执行此类任务的方法? # specify the source directory source_directory=/Users/jason/Desktop/source # specify the destination directory # DO NOT ADD THE SAME DIRECTORY NAME AS RSYNC WILL CREATE IT FOR YOU destination_directory=/Users/jason/Desktop/destination # run the rsync command rsync -avz $source_directory $destination_directory # grab the changed items and save to an array …
26 bash  scripting  rsync 

3
对于Windows bat脚本中从1到n的循环计数
我需要在bat脚本文件中运行Windows命令n次。我知道如何使用各种编程语言来执行此操作,但是无法在Windows命令行上正确完成它:-( 我希望这样的事情 for(int i = 0; i < 100; i++) { // do something } 甚至是这个(尽管并不完全是认真的) 1.upto(100, { // do something }) 谢谢! 编辑 我可以用java,perl,c或任何会生成如下所示的bat脚本的程序编写程序 for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N 等等。甚至“更好”: echo 1 echo 2 echo 3 …

4
如何配置后缀以将所有传入的电子邮件传递到脚本?
我希望使用后缀将所有传入的邮件发送到任何地址(包括未映射到本地用户的地址),以管道方式发送到脚本。我已经尝试mailbox_command在中进行配置/etc/postfix/main.cf: mailbox_command = /path/to/myscript.py 如果用户是本地用户,则此方法效果很好,但对于没有别名的“未知”用户,此方法将失败。我尝试设置luser_relay为本地用户,但这先mailbox_command占了先机,因此该命令无法运行。我尝试设置local_recipient_maps=(空字符串),但消息仍被退回(未知用户)。 是否可以使用魔术调用来吸引所有已知和未知用户也使用该脚本? 全文/etc/postfix/main.cf如下-这是默认的Ubuntu 10.04,但以下mailbox_command行除外: # See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = …

9
如何从STDIN读取多行到一个变量中?
我一直在搜寻这个问题无济于事。我正在这里使构建过程自动化,而我要做的就是获取版本号和对构建的简短描述,该描述可能是多行的。运行该系统的系统是OSX 10.6.8。 我已经看到了从使用CAT到根据需要处理每一行的所有内容。我不知道该使用什么以及为什么使用。 尝试次数 read -d '' versionNotes 如果用户必须使用退格键,则会导致输入乱码。另外,也没有终止输入的好方法,因为^ D不会终止,而^ C只会退出进程。 read -d 'END' versionNotes 可以...但是如果需要退格键,输入仍会显示乱码。 while read versionNotes do echo " $versionNotes" >> "source/application.yml" done 无法正确结束输入(因为我来不及查找与空字符串匹配的内容)。
24 bash  scripting 

5
在Ubuntu上以脚本方式安装MySQL
我需要编写一个脚本,该脚本将通过全新的Ubuntu服务器安装来构建服务器。在诸如Apache和PHP之类的东西中,它需要安装MySQL。唯一的问题是,当我使用apt-get安装MySQL时,安装有时会弹出一个对话框,允许我输入root密码。即,需要人与人之间的互动。 如何在安装过程中绕过此屏幕并在仍然使用apt-get安装MySQL时避免人为干预?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.