开发者

How do I access a share drive in a cygwin bash script?

开发者 https://www.devze.com 2023-03-15 16:52 出处:网络
#!/bin/bash \"mirror -R //thevault/Shared/Operations/Marketing/test --only-missing -e ;exit\" I\'m using lftp to mirror a folder on a share drive. But it fails with \"No such file or d开发者_运维问答
#!/bin/bash
"mirror -R //thevault/Shared/Operations/Marketing/test --only-missing -e ;exit"

I'm using lftp to mirror a folder on a share drive. But it fails with "No such file or d开发者_运维问答irectory" What's the correct way to write this? and How would I escape a space in the file name. I've tried literally everything.

I've also tried /cygdrive/s/Operations/Marketing/test. This works while I'm logged in and I run the script. But when the task is run while I'm not logged in the log file I get the same "No such file" Error.


I don't think that is support in general in cygwin for UNC pathnames (ie \\server\share) so you'll have to rely on mapping to a network drive and then using /cygdrive/s. To fix the problem with it not working when you aren't logged in, you'll need to call the Windows NET program from your script:

net use s: \\thevault\Shared password /user:myuser 

There may be some security implications to having the password in plaintext, so another possibility is to ensure that the script is running from a user account that has read permission to this server, and then you can omit the password.


This seems to be working perfectly while logged out.

#!/bin/bash
lftp ftp://username:password@server.com -e "mirror -R //thevault/Share/folder/folder/folder\ with\ spaces/folder/folder --only-missing -e;exit"

It was the escaped spaces in my path. The reason that this didn't work is because when I retyped the path I misspelled share. //thevault/shared <~~ incorrect

#!/bin/bash
"mirror -R //thevault/Shared/folder/folder/test --only-missing -e ;exit"
0

精彩评论

暂无评论...
验证码 换一张
取 消