Articles of 脚本

DD复制在terminal但不是由cron工作

在RHEL5.4系统上,我设置了一个脚本来每天晚上用cron备份dd拷贝的驱动器。 我吐dd输出到日志文件和电子邮件。 它在/ etc / crontab和/ var / spool / cron / root中,当我发现它甚至不能在cron下运行。 该脚本应该将/ dev / sda复制到/mnt/backup/sda.img(/ mnt / backup是一个已安装的250GB外部)。 当我在terminal上以根用户身份运行它时,它可以正常工作,我可以看到数据正在写入磁盘,而sda.img也越来越大。 然而,当作为cron运行,我得到从dd的输出说它复制147GB,但无法find它吐在147GB的地方 – 它没有把它放在sda.img。 它不在文件系统上,因为剩下的只有50GB。 它去了哪里? 我怎样才能确保在terminal发生的cron中发生同样的事情。 我确实停止了crond,并在备份之前和之后启动它,但是我的印象是,cron把这个工作踢掉了,我把它关掉了,备份起来,重新开始,并且正在快乐的路上。 谢谢。 编辑:对不起,dd线是 dd if = / dev / sda of = / mnt / backup / sda.img bs = 400K 和cron线是 01 0 * * * 2-6 […]

Ubuntu启动脚本

尝试在Ubuntu 9.04中创build启动脚本时,我遇到了问题。 我遵循这个指南,但它没有工作: http : //embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/ 我遵循指南,并创build一个脚本,看看它是否工作: #This script is called test #!/bin/bash #Startup Firefox firefox& 我也试过用#!/ bin / sh,但似乎有同样的问题。 在/etc/init.d中创build文件“test”之后,我在terminal中input了这个文件: ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults 但我得到这个错误: ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults update-rc.d: warning: /etc/init.d/test missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> System startup links for /etc/init.d/test already exist. 我不知道什么是LSB,并忽略它,并input此行: ubuntuUser@ubuntu:~$ sudo chmod +x /etc/init.d/test 之后,我重新启动了电脑,但没有奏效。 […]

Cron不可用,请改用?

我运行一些脚本从数据库中提取数据的几个服务器帐户有非常有限的工具可用,其中有些是不允许的(即使通过正式的请求)使用cron,比你说的,你能推荐任何工具可以用来安排脚本的执行(就像cron一样)? 提前致谢 :) 更新1:是的,我指的服务器是Linux,HP-Ux和Solaris,Bash> 3.x可用。

我怎么一次只能从cron运行脚本?

我想运行一个cron工作。 调度它很容易,工作。 我的问题是,我不知道如何一次只运行一个版本。 有任何想法吗? G-人

Bash – 如何输出两个命令文件?

我想输出两个命令到一个文件。 我想要每5分钟logging一次确切的时间(date)和温度(传感器)。 我知道如何输出一个命令到一个文件,但两个? 如何编写这样的脚本?

首次启动时运行脚本

我想创build一个只能在第一次启动时运行的脚本,而不会再次运行。 我正在研究一个将在模板上进行转换的虚拟机,所以我想确保我可以创build一个脚本,可以在服务器启动时自动运行。 我有一些线索,例如我可以把一个脚本放在/etc/init.d/firstboot中,并使用chkconfig在rhel上执行(这在Ubuntu上似乎不可用),但是我需要在Ubuntu 14和16 , 有任何想法吗? – 我可以假设,如果我把脚本放在/etc/init.d下,它会在启动时运行吗? 我一直在使用谷歌search,但我看到很多不同的东西。 例如,我看到了类似rhel的东西: /etc/init.d/yourscript: #!/bin/bash # chkconfig: 2345 9 20 # description: long description case "$1" in start) Do your thing !!! chkconfig yourscript off ;; stop|status|restart|reload|force-reload) # do nothing ;; esac 任何帮助深表感谢

从打字稿重新构buildshell会话

有一些工具,如'脚本','屏幕','ttyrec',允许logging内容的会议。 通过devise这些工具logging在pty上显示的所有内容,包括控制字符。 但是,似乎没有解决scheme来删除控制字符,并显示logging的会话的转录本在用户看到。 即使重放程序似乎也不能正确处理多行命令。 我花了一些时间试图为打字稿做适当的parsing,得出结论,事实上在一般情况下是不可能的。 问题是现代terminal模拟器(终结者,xterm,rxvt)function自动换行和shell(bash,zsh)使用它。 事情对于交互式shell进程来说工作得很好,因为它能够保持与terminal的宽度同步,并根据需要调整光标位置。 不幸的是,“脚本”(也就是我所看不到的其他工具)并没有跟踪pty大小变化事件,而这些信息简直就会丢失。 结果是一个渲染打字稿的工具没有足够的信息,不能重构多行命令的外观。 我错过了什么吗? 有解决scheme吗? 我看到以下可能的解决scheme,但是它们都不容易也不完整: 使用shell没有复杂的命令行编辑器(如bourne shell) 总是运行'set -x'on(在bash中会产生大量乱七八糟的命令auto-completion) 修补“脚本”(和“屏幕”)工具来loggingpty大小的变化(在Linux上它可以提供时间信息到stderr已经是合乎逻辑的在那里添加pty大小变化事件) 想出一些狡猾的algorithm来parsing搞砸的打字稿。 例如,在多行命令编辑期间,shell在需要转到另一行时发送CR。 当用户提交命令时,它会发送CR + NL。 不幸的是bash在处理用户的一些Ctrl-U命令时也会发送CR。 从另一个来源获取命令的文本(正在打印在打字稿中),例如从shell历史logging中获取。 但是这需要定制shellconfiguration文件脚本等。

SSMS卡住脚本数据库对象

在脚本化数据库中的所有对象之后,SQL Server Management Studio将陷入困境。 除了不编写数据库中的所有对象。 我从SQL Server Management Studio(三次)编写SQL Server 2008数据库中的所有对象: 它说它把所有的东西都编成脚本,除了它实际上没有完成 – 坐在那里卡住: 它设法编写三个对象: 但不是所有的对象。 你会注意到: 用户界面说,它成功地编写了所有189个对象 UI卡住了; closuresbutton被禁用 包含“成功”编写脚本的数据库对象的文件夹不包含所有成功编写脚本的数据库对象。 这引出了一个问题: 如何在SSMS中编写SQL Server 2008数据库的对象? 更新 :它可以编写任何VIEW , STORED PROCEDURE或FUNCTION ,而不会出现问题。 但是,如果我select脚本只是第一个表,它会失败: 它也失败,如果我脚本表: A – M O – Z A – G 这个永无止境的bug是我们购买SQL比较四年前的原因; 你不能相信微软的工具来正确地脚本化数据库(默默地忽略表格)。 更新:脚本选项 以下是使用中的一组脚本选项 ANSI填充:正确 附加到文件:False 在Error:False上继续脚本 将UDDT转换为基本types:False 为从属对象生成脚本:False 包含描述性标题:确实 包括如果不存在:False 包含系统约束名称:False 模式限定对象名称:真 […]

testing等待stdin的脚本

有没有一种方法来确定脚本是否正在等待标准input,并导致命令退出,如果检测到? 下面是一个例子,我正在执行的命令需要很长时间才能运行,但是在启动w / oa提示符之前,它也会提示input。 我想知道命令实际上在做什么,而不是等待。 提供以下脚本称为./demo #!/bin/bash read 有没有办法检测到读取正在等待stdin? 就像是 failifwaitingonstdin | ./demo 一旦检测到读取命令,将马上返回。 更新: 人们build议像预期和是的程序。 在深入挖掘之后,我看到他们如何能够支持这种互动风格。 他们不断地使用fputs来写'y'到stdout。 而不是无限的这样做,只要fputs在写入stdout时返回一个错误。

脚本自动testing网站是否可用

我是一个独立的Web开发人员,拥有自己的Centos VPS,为我的客户托pipe几个小型网站。 今天我发现我的httpd服务已经停止(没有明显的原因 – 但这是另一个线程)。 我重新启动它,但现在我需要find一种方式,如果它再次发生我可以通过电子邮件和/或SMS通知 – 我不喜欢当我的客户响我告诉我他们的网站不工作! 我知道可能有许多不同的可能性,包括服务器监控软件。 我想我真正需要的是一个脚本,我可以从我的开发主机(永久运行在我的办公室)运行一个cron作业,试图从我的生产服务器加载一个页面,如果它没有加载在说30几秒钟,然后它给我发一封电子邮件或短信。 我在shell脚本上非常垃圾,所以这个问题。 任何build议将不胜感激。