Solved

winscp scrip for move and replace.

Posted on 2013-11-20
13
1,051 Views
Last Modified: 2013-12-18
hi
 i try to use winscp scrip to remove a and rename  a file on the remote site. but i got a problem by using MV , one the .bak file exist  on the folder. is it away to replace the existing file in winscp scrip?

mv *.txt  /outgoing/completed/*.bak



Error moving file 'test_20131101.txt' to '/outgoing/completed/test_20131101.bak'.
0
Comment
Question by:tristonyip
  • 7
  • 6
13 Comments
 
LVL 14

Expert Comment

by:sentner
ID: 39663169
Unfortunately, winscp is very limited in its basic command set.  There's no way to force the "mv" command to overwrite the files.  If you want to completely blow away all the backups each time you do this, you can first delete the files in /outgoing/completed.  Another option would be to create a separate folder for each day that you do this, and put the files there.

Finally, you could use a more robust script, to first check each individual file in the base directory, check the completed directory for existence of a backup (and remove if it exists), and then do the move.  

You can also do this using .NET wrapper, though it's much more complex:
http://winscp.net/eng/docs/library
0
 

Author Comment

by:tristonyip
ID: 39663198
yes, the .net is more complex, can we add a timestamp on the txt file? and move to completed folder.

thanks
0
 
LVL 14

Expert Comment

by:sentner
ID: 39663727
Yes, you could add a timestamp as well, but not with the basic winscp commands.  It'd have to be done outside that process, in the script that calls winscp.
0
 

Author Comment

by:tristonyip
ID: 39675725
that's two process, can i have one script to do the whole thing? or other program rather than Winscp ?
0
 
LVL 14

Expert Comment

by:sentner
ID: 39676012
Do you have direct command line access to the server in question?  If so, what OS is it?
0
 

Author Comment

by:tristonyip
ID: 39676020
yes, i can create and run cmd file. it's window 2003. thanks
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 14

Expert Comment

by:sentner
ID: 39676676
If you can run a cmd file, just do it with something like:

d:
cd outgoing
ren *.txt *.bak
move /y *.bak completed\
0
 

Author Comment

by:tristonyip
ID: 39678228
the reason we use winscp is for the sftp remote site. those outgoing and completed are in the remote site sftp server.
0
 
LVL 14

Expert Comment

by:sentner
ID: 39678302
Right, that's what I meant by "server".  Do you have direct command-line access to the remote server, via ssh for instance?
0
 

Author Comment

by:tristonyip
ID: 39678332
oh, no, we can not remote access the server.
0
 
LVL 14

Expert Comment

by:sentner
ID: 39678485
How many of the "completed" files do you want to keep?  You could always do a simple round-robin mv, deleting the oldest ones, and successively  moving into different directories, like this:

rm /outgoing/completed3/*.bak
mv /outgoing/completed2/*.bak /outgoing/completed3
mv /outgoing/completed1/*.bak /outgoing/completed2
mv /outgoing/completed/*.bak /outgoing/completed1
mv *.txt  /outgoing/completed/*.bak

Open in new window

0
 

Author Comment

by:tristonyip
ID: 39690810
well, we would like to keep them in one location. i find the way to solved my issue,  if there is an error on the .bak, i will move the rest of files in .txt to avoid the name issue. thanks


mv *.txt  /outgoing/completed/*.bak
mv *.txt  /outgoing/completed/*.txt
0
 
LVL 14

Accepted Solution

by:
sentner earned 500 total points
ID: 39690940
That'd only solve it for the first rename.  If you want to keep them in the same location, you can also rename them such as:

rm /outgoing/completed/*.bak3
mv /outgoing/completed/*.bak2 /outgoing/completed/*.bak3
mv /outgoing/completed/*.bak1 /outgoing/completed/*.bak2
mv /outgoing/completed/*.bak /outgoing/completed/*.bak1
mv *.txt  /outgoing/completed/*.bak
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
countX 22 70
groovy example issue 10 66
Can not remove SSL certificate on iPhone 6 - iOS10.2 12 86
recursion example 16 68
Software development teams often use in-memory caches to improve performance. They want to speed up access to, or reduce load on, a backing store (database, file system, etc.) by keeping some or all of the data in memory.   You should implement a …
Introduction This question got me thinking... (http://www.experts-exchange.com/questions/28707487/GLOBALS.html) Why shouldn't we use Globals? This is a simple question without a simple answer.  How do you explain these concepts to a programmer w…
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now