我有perl脚本,我正在努力。在代码中,我实际上是打开一个文件句柄来创建一个参数文件,如下所示:
my $date_string= strftime '%Y%m%d',gmtime;
my $par_file = "/tmp/$schema-$date_string.par";
open my $par_fh, '>', $par_file or die "$par_file: opening for write: $!";
print $par_fh << PAR;
USERID=MYUSER/MYPA55W0RD
DIRECTORY=DMPDIR
SCHEMA=$schema
DUMPFILE=$sechema-$date_string.dmp
CONTENT=METADATA_ONLY
LOGFILE=$schema-$date_string.log
PAR
close $par_fh
or die "$par_file: closing after write: $!";
我需要参数化USERID=MYUSER/MYPA55W0RD
并将其隐藏在隐藏文件或其他内容中。有人可以告诉我如何设置它吗?
答案 0 :(得分:1)
将您的代码更改为以下内容:
my $date_string= strftime '%Y%m%d',gmtime;
my $par_file = "/tmp/$schema-$date_string.par";
my $creds = `cat .secretfile`;
chomp($creds);
open my $par_fh, '>', $par_file or die "$par_file: opening for write: $!";
print $par_fh << PAR;
USERID=$creds
DIRECTORY=DMPDIR
SCHEMA=$schema
DUMPFILE=$schema-$date_string.dmp
CONTENT=METADATA_ONLY
LOGFILE=$schema-$date_string.log
PAR
close $par_fh
or die "$par_file: closing after write: $!";
其中.secretfile中包含类似'scott / tiger'的字符串。请注意,这不是很强大,所以请随时加强它以符合您的政策。例如,确保文件存在且模式不大于0600,以减少被篡改的可能性。