Solved

Does perl copy better than linux copy command?

Posted on 2014-01-01
9
515 Views
Last Modified: 2014-01-21
Does anyone know if the Perl copy better than Linux copy command? I mean if  the copy time would be better than Linux copy.
0
Comment
Question by:c11v11
  • 4
  • 2
  • 2
  • +1
9 Comments
 
LVL 11

Expert Comment

by:Technodweeb
ID: 39749858
what are you trying to do and what size and quantity of files are you trying to copy?

Have you tried rsync? Very fast...
0
 
LVL 62

Expert Comment

by:gheist
ID: 39750380
there is no copy command on linux....
Especially on Linux (not on old UNIX) |cp| command can take enormous number of arguments, so there is not much efficiency gained by using perl, or compiling C program to delete ton of files.
0
 

Author Comment

by:c11v11
ID: 39751123
we have hundreds thousands files of small files ( average 16K) to copy from one NFS directory to another NFS directory on one same server. Actually it is for archive purpose.  Does the rsync work for this situation ? Does rsync support multiple process to handle the file copy?
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 11

Accepted Solution

by:
Technodweeb earned 500 total points
ID: 39751154
Have you considered scripting something on the remote box to tar.gz the files into one large file and then transfer it to your archive point? This would be faster by far as the large file gets many more efficiencies during the transfer plus you have compressed them for a smaller size. There is a lot of overhead when transferring 10000 1 byte files versus 1 10000 byte file that might compress to 8000 bytes.

To answer your question, yes, rsync will do what you want.
0
 
LVL 62

Expert Comment

by:gheist
ID: 39751709
To copy lots of files from nfs use actimeo=3600 mount option on Linux
0
 
LVL 34

Expert Comment

by:Duncan Roe
ID: 39753001
In my experience, tar without gzip is faster than with it (but you must have room for the big tar file at both ends) - the gzip takes longer than the time difference to transfer compressed / uncompressed.
So I would say tar without gzip on the systems where the files actually reside and will reside is your best shot. Don't even think of running tar anywhere else.
If you don't go the tar route, check man 5 nfs to understand what gheist's suggested actimeo=3600 mount option does: pretty neat for the copy but you don't want to leave it there.
0
 
LVL 62

Expert Comment

by:gheist
ID: 39753189
tar p keeps permissions (or cpio or pax) down to numeric uid
rsync would match usernames and try to get better permissions

no need for temporary files;)

(cd src ; tar cpf - .) | ssh dst '(cd dst ;tar xpf -)
0
 

Author Comment

by:c11v11
ID: 39753281
I don't have a dst server.  source directory and dest directory are both mount at NFS side.
0
 
LVL 62

Expert Comment

by:gheist
ID: 39754508
remove 'ssh' from command line....

best if source and destination are different mounts and you can set source with actimeo=3600 (or more) and each can use differnet thread for processing in client side.

Much more optimal would be having source mounted from destination and copied over that shortcut. (ask admin of the NFS if they can help...)
0

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to have a cron job run until a condition is met 12 66
add some character at the end of line in vi 7 80
Rate limit for DNS queries 7 75
Upgrade BIOS / EUFI at Scale 4 37
Have you ever been frustrated by having to click seven times in order to retrieve a small bit of information from the web, always the same seven clicks, scrolling down and down until you reach your target? When you know the benefits of the command l…
The purpose of this article is to demonstrate how we can use conditional statements using Python.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

822 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