我正在创建一个脚本,我想将文件从本地目录上传到远程目录,但基于某些条件,我正在计算文件计数并上传文件。
所以我需要文件差异计数来完成我的脚本。
diff -q dir1/ dir2/ | wc -l
在本地工作正常,但相同的命令不能与lftp
lftp -e "set ftp:ssl-allow no; diff -q /XXXXX/Y/ tmp/A_000/ | wc -l; bye" -u username,password remote_storage_url
其中/XXXXX/Y/为远端路径,tmp/A_000/为本地路径。
在lftp中不支持diff命令,但我需要解决这个问题。
Edit-1:
我已经尝试了用——dry-run来执行镜像命令,但问题是实际命令显示了传输了多少文件,而——dry-run没有显示。
实际运行:
jayesh@ubuntu:~/test$ lftp -e "set ftp:ssl-allow no; mirror -R tmp/A_000/ /XXXXX/Y/ ; bye" -u username,password remote_storage_url
New: 11 files, 0 symlinks
19046373 bytes transferred in 50 seconds (371.8 KiB/s)
To be removed: 0 directories, 11 files, 0 symlinks
与——管制:
jayesh@ubuntu:~/test$ lftp -e "set ftp:ssl-allow no; mirror -R tmp/A_000/ /XXXXX/Y/ --dry-run ; bye" -u username,password remote_storage_url
mkdir -p ftp://username:password@remote_storage_url/%2F/XXXXX/Y/
To be removed: 0 directories, 11 files, 0 symlinks
我想在实际上传之前添加文件计数。
您可以使用——dry-run或——script选项尝试mirror,然后解释日志。