File: mergeall-android11-updates-media/MORE--logs-and-code/FTP-server-test.txt

# FTP test, run on macOS (Catalina), in Terminal
# FTP app's server started on Android, on same local Wi-Fi network


#----------------------------------------------------------------------------------------
# 1) Mount server at path (start server in app, Finder 'Go' mounts some server types too)
#----------------------------------------------------------------------------------------

~$ mkdir ~/FtpAndroid
~$ mount_ftp -i ftp://192.168.1.6:2221 ~/FtpAndroid
Username: me
Password: 
~$ echo $?
0


#----------------------------------------------------------------------------------------
# 2) The phone's internal storage, as seen on macOS (and by POSIX file calls in Python)
#----------------------------------------------------------------------------------------

~$ ls ~/FtpAndroid
Admin-Mergeall   Autodesk    Download   Movies          Pictures    Samsung		     my-0THER-STUFF
Alarms           DCIM        Icode-Go   Music           Podcasts    Saved Email   work
Android          Documents   MY-STUFF   Notifications   Ringtones   kws

~$ ls ~/FtpAndroid/MY-STUFF
Books		Code		Music		Training	Writing		__more__
Camera		Gadgets		Sheets		Websites	__bkp__

~$ python3
>>> f = open('/Users/me/FtpAndroid/MY-STUFF/Sheets/Goals.xlsb', 'rb')
>>> f.read(10)
b'PK\x03\x04\x14\x00\x06\x00\x08\x00'
>>> f.read(10)
b'\x00\x00!\x00\x9c\x81\xban\xcb\x03'


#----------------------------------------------------------------------------------------
# 3) Run the large-archive comparison benchmark: 17 mins vs USB's 30 secs
#----------------------------------------------------------------------------------------

~$ py3 $C/mergeall/mergeall.py ~/MY-STUFF ~/FtpAndroid/MY-STUFF -report -skipcruft > synclog.txt

~$ grep 'Phase runtime' synclog.txt
Phase runtime: 1026.2403373789998


#----------------------------------------------------------------------------------------
# 4) All files > 6 months old have bad timestamps (12 AM), and others botch seconds
#----------------------------------------------------------------------------------------

~$ cmp /Users/me/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3 /Users/me/FtpAndroid/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3
~$
~$ ls -lT /Users/me/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3 /Users/me/FtpAndroid/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3
-rw-------  1 me  staff  5199676 Feb  2 00:00:00 2011 /Users/me/FtpAndroid/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3
-rwxrwxrwx  1 me  staff  5199676 Feb  2 21:25:06 2011 /Users/me/MY-STUFF/Music/Music-Popular/ALL/Desperado.mp3

~$ cmp /Users/me/MY-STUFF/Sheets/Goals.xlsb /Users/me/FtpAndroid/MY-STUFF/Sheets/Goals.xlsb 
~$
~$ ls -lT /Users/me/MY-STUFF/Sheets/Goals.xlsb /Users/me/FtpAndroid/MY-STUFF/Sheets/Goals.xlsb 
-rw-------  1 me  staff  557773 Mar 13 11:14:00 2021 /Users/me/FtpAndroid/MY-STUFF/Sheets/Goals.xlsb
-rw-r--r--@ 1 me  staff  557773 Mar 13 11:14:18 2021 /Users/me/MY-STUFF/Sheets/Goals.xlsb

# But modtimes on phone correctly match macOS PC in both file explorers and Termux 'ls'


#----------------------------------------------------------------------------------------
# 5) The phone is mounted read-only on macOS: one-way (to-PC) syncs only
#----------------------------------------------------------------------------------------

~$ echo "test" > ~/FtpAndroid/test.txt
-bash: /Users/me/FtpAndroid/test.txt: Read-only file system

~$ sudo echo "test" > ~/FtpAndroid/test.txt
-bash: /Users/me/FtpAndroid/test.txt: Read-only file system


#----------------------------------------------------------------------------------------
# 6) Symlinks + nonportable names munged in transit to phone, all files differ by modtime
#----------------------------------------------------------------------------------------

~$ vi synclog.txt

# selected file contents:

Mixed mode:
 ('FILELINK1',
  '/Users/me/MY-STUFF/Code/mergeall/test/ziptools/__private__/TESTS-Comprehensive-apr1320/cgi',
  '/Users/me/FtpAndroid/MY-STUFF/Code/mergeall/test/ziptools/__private__/TESTS-Comprehensive-apr1320/cgi'),

Unique:
 (['White-throated woodrat \uf027 Neotoma albigula facts.html',
 (['White-throated woodrat | Neotoma albigula facts.html',

Diffs:
 ('Desperado.mp3',
  '/Users/me/MY-STUFF/Music/Music-Popular/ALL',
  '/Users/me/FtpAndroid/MY-STUFF/Music/Music-Popular/ALL',
  'modtime'),

 ('Goals.xlsb',
  '/Users/me/MY-STUFF/Sheets',
  '/Users/me/FtpAndroid/MY-STUFF/Sheets',
  'modtime'),


#----------------------------------------------------------------------------------------
# 7) [TBD] Port forwarding (with server set to 'Loopback' mode) did not work - why?
#----------------------------------------------------------------------------------------

umount ~/FtpAndroid
adb start-server
adb forward tcp:2221 tcp:2221
mount_ftp -i ftp://127.0.0.1:2221 ~/FtpAndroid
echo $?
py3 $C/mergeall/mergeall.py ~/MY-STUFF ~/FtpAndroid/MY-STUFF -report -skipcruft > synclog2.txt
grep 'Phase runtime' synclog2.txt


#----------------------------------------------------------------------------------------
# 8) [TBD] Results on other platforms? (but a moot point, if servers botch modtimes)
#----------------------------------------------------------------------------------------



[Home page] Books Code Blog Python Author Train Find ©M.Lutz