@@ -115,17 +115,17 @@ transfer_via_scp() {
115115 return 1
116116 fi
117117
118- local ssh_opts=" -i $SSH_KEY_PATH -p $SSH_PORT -o StrictHostKeyChecking=no"
118+ local ssh_opts=" -i $SSH_KEY_PATH -p $SSH_PORT -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 "
119119 local date_subdir=" $( date +%Y-%m) /$( date +%d) "
120120 local remote_dest=" $REMOTE_PATH /$date_subdir "
121121
122122 # Create remote date-based directory
123- ssh $ssh_opts " $REMOTE_USER @$REMOTE_HOST " " mkdir -p $remote_dest "
123+ timeout 30 ssh $ssh_opts " $REMOTE_USER @$REMOTE_HOST " " mkdir -p $remote_dest "
124124
125125 # Transfer archived files
126126 for f in " $ARCHIVE_DIR " /* .gz; do
127127 if [ -f " $f " ]; then
128- scp $ssh_opts " $f " " $REMOTE_USER @$REMOTE_HOST :$remote_dest /"
128+ timeout 120 scp $ssh_opts " $f " " $REMOTE_USER @$REMOTE_HOST :$remote_dest /"
129129 log_message " Transferred: $remote_dest /$( basename $f ) "
130130 fi
131131 done
@@ -138,7 +138,7 @@ transfer_via_sftp() {
138138 return 1
139139 fi
140140
141- local sftp_opts=" -P $SSH_PORT -i $SSH_KEY_PATH -o StrictHostKeyChecking=no -o BatchMode=yes"
141+ local sftp_opts=" -P $SSH_PORT -i $SSH_KEY_PATH -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=10 -o ServerAliveCountMax=3 "
142142 local batch_file=$( mktemp /tmp/sftp-batch-XXXXXX)
143143 local date_subdir=" $( date +%Y-%m) /$( date +%d) "
144144 local remote_dest=" $REMOTE_PATH /$date_subdir "
@@ -168,7 +168,7 @@ transfer_via_sftp() {
168168 fi
169169
170170 # Execute sftp batch
171- if sftp $sftp_opts -b " $batch_file " " $REMOTE_USER @$REMOTE_HOST " >> " $LOG_FILE " 2>&1 ; then
171+ if timeout 120 sftp $sftp_opts -b " $batch_file " " $REMOTE_USER @$REMOTE_HOST " >> " $LOG_FILE " 2>&1 ; then
172172 log_message " Transferred $file_count files to remote via SFTP"
173173 else
174174 log_message " SFTP transfer failed (exit code $? )"
@@ -186,11 +186,11 @@ transfer_via_rsync() {
186186 return 1
187187 fi
188188
189- local rsync_opts=" -avz -e 'ssh -i $SSH_KEY_PATH -p $SSH_PORT -o StrictHostKeyChecking=no'"
189+ local rsync_opts=" -avz -e 'ssh -i $SSH_KEY_PATH -p $SSH_PORT -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 '"
190190 local date_subdir=" $( date +%Y-%m) /$( date +%d) "
191191 local remote_dest=" $REMOTE_PATH /$date_subdir "
192192
193- eval " rsync $rsync_opts $ARCHIVE_DIR / $REMOTE_USER @$REMOTE_HOST :$remote_dest /"
193+ eval " timeout 120 rsync $rsync_opts $ARCHIVE_DIR / $REMOTE_USER @$REMOTE_HOST :$remote_dest /"
194194 log_message " Synchronized logs to remote via rsync: $remote_dest /"
195195}
196196
0 commit comments