我对Linux非常陌生,在CentOS中应该是一个非常简单的Bash脚本。 #! /bin/bash # script to restore the cognos rds from snapshot export AWS_RDS_HOME=/opt/aws/apitools/rds export PATH=$PATH:$AWS_RDS_HOME/bin export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.template echo $AWS_RDS_HOME echo $PATH echo $AWS_CREDENTIAL_FILE rds-delete-db-instance mydb –final-db-snapshot-identifier mydb-daily-$(date +%Y)-$(date +%m)-$(date +%d) –force -region eu-west-1 我添加了回声,以便我可以看到发生了什么事情。 我运行时的输出 sh myscript.sh 是: /opt/aws/apitools/rds /bin/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/opt/aws/apitools/rds /credential-file-path.template rds-delete-db-instance: command not found 所以,当我引用在同一脚本中设置的其他环境variables时,看起来导出命令不起作用。 我哪里错了? 谢谢 更新:我已经尝试了下面的build议,但不喜欢。 运行bash -x很有趣。 当我尝试连接时,下面的“\ r”是否可以放在后面? 例如 […]
我有几个bash脚本正在以指定的时间添加到cron作业,但是它需要以root用户身份执行。 我试图运行这些脚本即crob作业,但它需要root用户权限,因为我在root用户受限制的ubuntu ec2实例中运行此作业。 以root用户身份运行这些脚本的工作是什么? 谢谢
所以我想要关注我的networking连接,所以我可以为我的ISP做一个报告。 (好像调制解调器每天约一次约30-60秒) 所以我复制了这个方便的小脚本 http://www.cyberciti.biz/tips/simple-linux-and-unix-system-monitoring-with-ping-command-and-scripts.html 和它一起运行 watch -n 15 ./ping-test.sh 我一直在testing它通过拉我的调制解调器上的插头。 networking出去后,手表首次运行脚本运行良好(发送一些电子邮件),然后失效。 一旦联网恢复脚本“完成”,然后再运行一遍。 所以我收到的邮件是在networkingclosures的时候,但是没有多久。 如果我直接从命令行运行脚本,它将运行(电子邮件),然后退出。 任何想法为什么? 如何让脚本在networkingclosures后继续运行?
我有一个sftp脚本下载档案,解压缩,然后根据date重命名文件,并将其移动到相应的文件夹。 我不得不将脚本从USB驱动器移到单独的服务器上。 当我运行脚本运行后,它提取文件,但移动文件时,它给出了以下错误: mkdir: cannot create directory `../abc/2011-11-23': No such file or directory 任何帮助将不胜感激。 谢谢
所以在中国的某个人只是喜欢在我的networking工具网站上滥用垃圾信息在yougetsignal.com 。 我一直试图分析我的access.log文件,以确切地看到他们如此兴奋。 我的网站上的大部分服务都使用MySQL调用来限制使用率的历史logging,而且大多数情况下,这是抑制过度使用的一个好方法。 每过一段时间,他们都会使用大量的IP地址来达到这个目的,以避免IP速率的限制。 我一直在玩这两个命令来分析我的Apache access.log文件: sudo cat access.log | awk '{print $1}' | sort | uniq -c |sort -n // Output sample: // 3453 83.251.250.130 // 3888 79.136.28.38 // 4268 94.75.220.77 // 7116 61.147.122.183 和 sudo tail -50000 access.log | awk '{print $1}' | sort | uniq -c |sort -n // Output sample: […]
我的umask是0022 当我创build目录使用 mkdir mydir 我得到的权限是drwxr-xr-x 但是,当我创build文件 touch file 我得到的权限是-rw-r – r– 为什么目录默认获得x(search)权限,而文件却没有? 默认设置如何生效? 有没有办法改变它们(我知道只是改变它们可能不是个好主意)。 只是想试验。
我需要一个linux / unix命令来执行另一个命令,并将它执行的命令的PID写入一个文件中…是否有这样一个命令? 我不寻找任何scheme,把进程放在后台,并利用壳var $! 例: 假设我正在查找的命令是execwritepid 。 我需要能够打电话给: execwritepid -e "/usr/bin/script -f sometext.log" -f /var/log/script.pid 这样script -f sometext.log的PID script -f sometext.log被写入/var/log/script.pid script是我正在执行的命令。 根据Daniel Pittman的回答,明确的build议是: bash -c 'echo $$ > /var/log/script.pid && exec /usr/bin/script -f sometext.log'
我希望能够对我写的期望脚本有一点洞察。 基本上我们有这个期望的脚本执行sftp上传,密钥authentication不是一个选项,sftp是我们的供应商支持的唯一方法,因此需要这个。 我希望能够捕获超时并logging错误代码的脚本的目的。 我需要: login到sftp站点 开始转移 检测上传已经达到100% 如果上传在一定时间内未达到100%,我想logging一个错误代码用于脚本目的。 这是我到目前为止: set timeout 10 spawn sftp [email protected] match_max 100000 expect "password: " send — "PASSWORD\n" expect "sftp> " send — "lcd /data/upload\n" expect "sftp> " send — "put file_yyyymmdd\n" expect "*100%*" {send "quit\n" } \ timeout { exit 2 } expect "sftp> " send — "quit\n" expect […]
我正在使用以下命令: mysqldump -alv -h 123.123.123.123 –password=P@ssw0rd –user=UsernameHere –add-drop-table -p DatabaseSchemaName > dump.sql 然后它要我input密码。 在命令中指定密码时,我是否做错了? 我input的密码绝对是正确的密码。
1>我想在BASH脚本中embedded下面的Perl脚本,并且Message应该从message.txt文件中读取。 如何实现这一点? use Mail::Sendmail; %mail = ( To => '[email protected]', From => '[email protected]', Message => "This is a very short message" ); sendmail(%mail) or die $Mail::Sendmail::error; print "OK. Log says:\n", $Mail::Sendmail::log; 2>如何通过Perl脚本附加日志文件?