SCP Changing Text File Contents – How to Prevent

scpssh

I am trying to copy a file from machine A:

apt policy openssh-client
openssh-client:
  Installiert:           1:7.2p2-4ubuntu2.4

to machine B:

apt-cache policy openssh-client
openssh-client:
    Installiert: 1:5.5p1-6+squeeze5

On A:

scp myfile <server>:/myfile
md5sum myfile
2ba67c5e816350d4d2e2e7fd883037e7
file myfile
myfile: Python script, ASCII text executable

On B:

md5sum myfile
8883620c2a0878da1db273101b55124d
file myfile
myfile: ASCII Java program text

Looking into the text file, it seems that every line has one more space in it than the last one, so instead of:

import argparse, os, sys

from subprocess import check_output

def count_voicemails(dir):
    # find is faster than ls, since it does not check attributes
    command = 'find {}/INBOX -maxdepth 1 | wc -l'
    count   = int(check_output(command.split()))
    return count

It looks like this:

import argparse, os, sys

from subprocess import check_output

 def count_voicemails(dir):
       # find is faster than ls, since it does not check attributes
           command = 'find {}/INBOX -maxdepth 1 | wc -l'
               count   = int(check_output(command.split()))
                   return count

Best Answer

Your scp command sends the file to the root of the target server - you're scp:ing to /myfile. When you later look at the file, you're not giving the full path. It looks as though you have once tried to copy the contents of a file using an editor configured to insert indentation from the previous line, and that's the file you're looking at.