Mehr über die Data Workbench Mitteilung zum Ende der Nutzungsdauer.
Eine kurze Anleitung für verschiedene Dateiübertragungsmethoden in DWB.
File Transfer Governance ist ein Standardprozess zum Übertragen von Dateien von einem internen Ordner auf einen anderen Server oder eine interne Dateiverschiebung.
AWS (Amazon Web Services)
Übertragen Sie Dateien vom FTP-Server in das NAS-Verzeichnis.
FTP-Offline-Feeds vom FTP-Server in das NAS-Verzeichnis. Die folgenden Details sind für FTP erforderlich.
ftp_username
ftp_password
ftp_port
ftp_address
ftp_directory
delete_ftp_files
ftp_file_extension
local_directory
(FTP-Details sind in der Projektcheckliste verfügbar. Externen FTP-Benutzer zum Übertragen der Dateien verwenden)
Verwenden Sie das unten angehängte Skript ftp_winscp_get.pl und planen Sie den Vorgang je nach Anforderung.
ftp_winscp_get.pl
Dieses Skript sollte unter E:\scripts\Scripository\Library\Perl platziert werden.
Wenn der Ordner "Scripository"nicht verfügbar ist, lesen Sie Wöchentliche Neuverarbeitung , um den Ordner herunterzuladen.
Planen Sie das Skript basierend auf der Dateiverfügbarkeit unter ftp_address.
Die Namenskonvention für die Datei sollte JJJMMTT- lauten.<offline_feed_name>-00.*
Übertragen Sie Dateien vom NAS-Verzeichnis auf den FTP-Server.
Verwenden Sie das Skript ftp_winscp_put.pl und planen Sie es je nach Anforderung.
Dieses Skript sollte unter E:\scripts\Scripository\Library\Perl platziert werden.
Die folgenden Details sind erforderlich, um das Skript auszuführen.
ftp_username
ftp_password
ftp_port
ftp_address
ftp_directory
delete_ftp_files
ftp_file_extension
local_directory
#######################################################################################################################
# PLUGIN NAME HERE
my $pluginname = "FTP WinSCP";
# 20140421 Script tp put files on the FTP
#######################################################################################################################
# INCLUDE SCRIPOSITORY CORE
use FindBin; # locate this script
BEGIN {push @INC, $FindBin::Bin}
require 'core.pl';
# check for the required parameters
GetOptions('local_directory:s' => \$local_directory,
'source_file_pattern:s' => \$source_file_pattern,
'ftp_file_extension:s' => \$ftp_file_extension,
'ftp_address=s' => \$ftp_address,
'ftp_username=s' => \$ftp_username,
'ftp_password:s' => \$ftp_password,
'ftp_port:s' => \$ftp_port,
'ftp_directory:s' => \$ftp_directory,
'log_directory:s' => \$log_directory,
'error_directory:s' => \$error_directory,
'mail_from:s' => \$mail_from,
'mail_to:s' => \$mail_to,
'host:s' => \$host,
'trigger_directory:s' => \$trigger_directory,
'trigger_file_extension:s' => \$trigger_file_extension,
'delete_ftp_files:s' => \$delete_ftp_files,);
# FOR LEFT OVER PARAMS, WE CAN CHECK GLOBAL PARAMS
check_parameters(@argv);
my $ftp_winscp_script = "winscpscript.txt";
if (index($trigger_file_extension, '.') != -1) {
my @trigger_file_extension1=split(/\./,$trigger_file_extension,2);
$trigger_file_extension = $trigger_file_extension1[1];
}
if (index($ftp_file_extension, '.') != -1) {
my @ftp_file_extension1=split(/\./,$ftp_file_extension,2);
$ftp_file_extension = $ftp_file_extension1[1];
}
if ($trigger_file_extension ne "_empty_" && $trigger_directory ne "_empty_") {
print $trigger_file_extension;
my $ftp_winscp_trigger_script = "winscpscript_trigger.txt";
create_winscp_script($ftp_winscp_trigger_script,$ftp_port,$ftp_username,$ftp_password,$ftp_address,$trigger_directory,$ftp_directory,$delete_ftp_files,"*",$trigger_file_extension);
sleep(10);
system("\"E:\\Scripts\\Scripository\\Library\\WinSCP\\WinSCP.exe\" /console /script=$ftp_winscp_trigger_script /log=$logfile");
$files = getFiles($trigger_directory,$trigger_file_extension,$days_ago,$months_ago);
my $ftp_file_pattern="";
my $numberoffiles = @$files;
my $i=0;
foreach my $trigger_file(@$files) {
$i++;
my $file_string=substr($trigger_file,length($trigger_directory), length($trigger_file)-length($trigger_directory));
my @file_string1=split(/\./, $file_string, 2);
if ($i == $numberoffiles) {
$ftp_file_pattern.=$file_string1[0].".".$ftp_file_extension;
}
else {
$ftp_file_pattern.=$file_string1[0].".".$ftp_file_extension.", ";
}
}
#unlink($ftp_winscp_trigger_script);
print $local_directory;
print $trigger_directory;
create_winscp_script($ftp_winscp_script,$ftp_port,$ftp_username,$ftp_password,$ftp_address,$local_directory,$ftp_directory,$delete_ftp_files,$ftp_file_pattern, "");
runLogger("$pluginname: Sleeping for 10 sec to give enough time for the temp script to be available");
sleep(10);
runLogger("$pluginname: FTP started");
system("\"E:\\Scripts\\Scripository\\Library\\WinSCP\\WinSCP.exe\" /console /script=$ftp_winscp_script /log=$logfile");
runLogger("$pluginname: FTP ended");
}
else {
if ($source_file_pattern eq "_empty_") {
$source_file_pattern="*";
}
else {
if (index($source_file_pattern, '.') != -1) {
my @source_file=split(/\./,$source_file_pattern,2);
$source_file_pattern = $source_file[0];
}
}
$ftp_file_extension=".".$ftp_file_extension;
print $local_directory;
create_winscp_script($ftp_winscp_script,$ftp_port,$ftp_username,$ftp_password,$ftp_address,$local_directory,$ftp_directory,$delete_ftp_files,$source_file_pattern,$ftp_file_extension);
runLogger("$pluginname: Sleeping for 10 sec to give enough time for the temp script to be available");
sleep(10);
runLogger("$pluginname: FTP started");
system("\"E:\\Scripts\\Scripository\\Library\\WinSCP\\WinSCP.exe\" /console /script=$ftp_winscp_script /log=$logfile");
runLogger("$pluginname: FTP ended");
}
unlink($ftp_winscp_script);
sub create_winscp_script() {
my ($ftp_script,$ftp_port,$ftp_username,$ftp_password,$ftp_address,$local_directory,$ftp_directory,$delete_ftp_files,$file_pattern, $file_extension) = @_;
open (FTP, "> $ftp_script") or die "Can't open log: $!";
print FTP "\# Automatically answer all prompts negatively not to stall\n";
print FTP "option batch on\n\n";
print FTP "\# Disable overwrite confirmations that conflict with the previous\n";
print FTP "option confirm off\n\n";
print FTP "\# Connect using a password\n";
if ($ftp_port eq "22") {
print FTP "open sftp://$ftp_username:$ftp_password\@$ftp_address\n\n";
}
else {
print FTP "open ftp://$ftp_username:$ftp_password\@$ftp_address\n\n";
}
print FTP "\# Change local directory\n";
print FTP "lcd \"$local_directory\"\n\n";
print FTP "\# Change remote directory\n";
if ($ftp_directory eq "_empty_") {
}
else {
print FTP "cd \"$ftp_directory\"\n\n";
}
print FTP "\# Force binary mode transfer\n";
print FTP "option transfer binary\n\n";
print FTP "\# Download the file to specified directory\n";
my @get_files=split(/,/,$file_pattern);
foreach my $file (@get_files){
if ($delete_ftp_files eq "Y" || $delete_ftp_files eq "Yes") {
print FTP "put -nopreservetime -nopermissions -delete $file$file_extension\n";
}
else {
print FTP "put -nopreservetime -nopermissions $file$file_extension\n";
}
}
print FTP "\n\n";
print FTP "\# Disconnect\n";
print FTP "close\n\n";
print FTP "\# Exit WinSCP\n";
print FTP "exit\n\n";
close(FTP);
runLogger("$pluginname: creating temporary winscp file");
}
Planen Sie das Skript basierend auf der Dateiverfügbarkeit unter ftp_address.
Die Namenskonvention für die Datei sollte JJJMMTT- lauten.<offline_feed_name>-00.*
Übertragen Sie Dateien von einem NAS-Ordner in einen anderen NAS-Ordner.
Kopieren Sie die Datei und fügen Sie sie direkt aus einem anderen NAS-Verzeichnis ein. Gehen Sie wie folgt vor:)
Melden Sie sich beim Server an -> gehen Sie zu Ausführen -> \server_name\E$ [Der neue Ordner wird geöffnet und kopiert oder verschiebt die Dateien direkt]
Verwenden Sie das Skript "copy_files.pl", um Dateien von einem Server auf einen anderen zu kopieren, oder "move_files.pl", um Dateien von einem Server auf einen anderen zu verschieben. (Diese Dateien sind in E:\scripts\Scripository verfügbar.)