【发布时间】:2014-12-24 00:10:04
【问题描述】:
我有一个简单的下载脚本,我使用set -x,效果很好;
我可以看到它执行的每个步骤,并且可以识别脚本中的错误
或在下载中:
#!/bin/bash
set -x
#short_date=$(/bin/date +%m%d%y)
short_date=$(/bin/date -d "8 day ago" +%m%d%y)
#long_date=$(/bin/date +%Y%m%d)
long_date=$(/bin/date -d "8 day ago" +%Y%m%d)
scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_$short_date.csv /local/casper3/dailymetrics/BANK_$long_date.csv
我想自动化这项工作。有没有办法可以将set -x 输出保存到日志文件中?可能是一个日志文件 - 或每天不同的日志文件。我不知道什么最有效。
以下是上述脚本的示例set -x 输出。
++ /bin/date +%m%d%y
+ short_date=102814
++ /bin/date +%Y%m%d
+ long_date=20141028
+ scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_102814.csv /local/casper3/dailymetrics/BANK_20141028.csv
Executing: program /usr/bin/ssh host 192.168.1.10, user friendly, command scp -v -f /home/friendly/transfer/out/EXCHANGE_102814.csv
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /home/casper/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.1.10 [192.168.1.10] port 7777.
debug1: Connection established.
【问题讨论】:
-
哪个版本?使用 bash 4,您可以在不重定向所有 stderr 的情况下执行此操作;对于旧版本,它们都是相同的流。
-
顺便说一句,您可能会考虑使用
PS4=':$BASH_SOURCE:$LINENO+'之类的方法来记录每个命令的文件和行。
标签: bash debugging output non-interactive