Commit Graph

59 Commits

Author SHA1 Message Date
Ryo Nakamura
700d64b375 now mscp links libmscp 2023-02-26 23:18:39 +09:00
Ryo Nakamura
dbc96f9166 add -r option (but no effect) 2023-02-16 18:04:16 +09:00
Ryo Nakamura
fd5c6e971e add \n at the final output 2023-02-16 17:59:26 +09:00
Ryo Nakamura
3d98451bba set default nr_threads to floor(log(cores) * 2) + 1)
This change prevents mscp from establishing too many ssh connections
on many-core machines in default.
2022-12-11 14:01:52 +09:00
Ryo Nakamura
d27db01d8d use pthread_cleanup to acquire and release lock
In chunk_prepare(), if multiple threads wait for acquiring f->lock,
and then pthread_cancel() is called, the waiting threads are never
canceled because pthread_mutex_lock() is not a cancellation point.
So, use pthread_cleanup_push/pop to release the lock.
2022-12-11 13:23:41 +09:00
Ryo Nakamura
6ae3f0f9f1 set default NR_AHEAD to 32 2022-12-08 18:01:50 +09:00
Ryo Nakamura
847c80276a fix final progress output 2022-12-06 20:04:04 +09:00
Ryo Nakamura
1441873db6 reuse ctrl sftp session for the first copy thread 2022-12-05 21:47:00 +09:00
Ryo Nakamura
e1d14623f4 set TCP_NODELAY by default and introduce -N option to disable it 2022-12-04 21:32:48 +09:00
Ryo Nakamura
3b794ab51b remove unused code and introduce -b buf_sz option
This commit removes ifdef ASYNC_WRITE. So, mscp always depends on
the patched libssh.
2022-12-03 20:48:43 +09:00
Ryo Nakamura
50c6781811 little cleanup 2022-12-02 23:35:45 +09:00
Ryo Nakamura
03b857b51a add -M hmac option 2022-12-02 21:13:13 +09:00
Ryo Nakamura
d646fc1f89 use sigalrm for printing progress bar 2022-11-28 00:14:05 +09:00
Ryo Nakamura
5188cf6df6 add ETA to progress print 2022-11-27 20:36:24 +09:00
Ryo Nakamura
130e735e65 skip sftp_free() inappropriately 2022-11-27 19:48:13 +09:00
Ryo Nakamura
8cc964ca8a fix duplicate error message on ssh auth failed.
and fix the final \n with -q
2022-11-26 17:34:24 +09:00
Ryo Nakamura
5e7aa774ca fix when copy multiple sources and various tiny fixes
* when copying multiple sources, target must be directory
* add multi-src copy test and parametrize src/dst prefixes
* cleanup REAMDE (s/sessions/connections/g)
* make error output in copy functions simple
2022-11-18 20:20:19 +09:00
Ryo Nakamura
b8d58b1fba tiny fix
- set ssh nonblocking before closing sftp session
- fix pprint for core mask
2022-11-18 13:47:24 +09:00
Ryo Nakamura
41da0c5cfe check invalid coremask 2022-11-16 01:57:27 +09:00
Ryo Nakamura
a69115a4dc add -m coremask option 2022-11-15 19:57:53 +09:00
Ryo Nakamura
e9d5ceb462 add memory barrier to notify monitor thread of copy threads finished 2022-11-13 15:33:45 +09:00
Ryo Nakamura
81a7fbd2d8 add -a nr_ahead option 2022-11-13 15:31:12 +09:00
Ryo Nakamura
cfbbae860c little trick to make progress bar stable 2022-11-12 17:45:08 +09:00
Ryo Nakamura
756e0759f9 fix buf size in remote to local copy.
Too large buffer size for sftp_async_read causes unfinished copy:
sftp_async_read returns 0 althrough data remains.
2022-11-12 17:30:51 +09:00
Ryo Nakamura
71d827d613 fix some thread handling 2022-11-12 16:11:20 +09:00
Ryo Nakamura
8eb9e69c1c fix incorrect ret handling for read/write 2022-11-08 10:06:30 +00:00
Ryo Nakamura
243bf1fa57 add -H option to disable host key check
tests use this option.
2022-11-05 22:46:02 +09:00
Ryo Nakamura
d62fc2cddd do not print progress when total bytes transferred is 0 2022-10-31 15:30:42 +00:00
Ryo Nakamura
7039b84c4f capture retval from copy threads 2022-11-01 00:17:05 +09:00
Ryo Nakamura
926688e849 rename dirname if dst dir does not exist
`scp remote:srcdir dstdir` renames srcdir to dstdir if dstdir does
not exist. If dstdir exists, it creates dstdir/srcdir.
This commit imitates this behavior.
2022-10-31 22:51:39 +09:00
Ryo Nakamura
e997d692c2 set nr_threads to # of chunks if # of chunks is small 2022-10-30 12:27:58 +00:00
Ryo Nakamura
453e8f27ce add cpack to build debian package 2022-10-30 12:17:17 +00:00
Ryo Nakamura
b9f44bb030 Merge branch 'main' of github.com:upa/mscp 2022-10-30 15:22:17 +09:00
Ryo Nakamura
c495f6b89b rename sscp to mscp 2022-10-30 15:20:05 +09:00
Ryo Nakamura
65bdbdaede little refactoring for param names 2022-10-30 06:13:02 +00:00
Ryo Nakamura
c76fa3141d change indent from space to tab 2022-10-29 23:48:50 +09:00
Ryo Nakamura
ff697aa514 fix path handling 2022-10-29 23:36:12 +09:00
Ryo Nakamura
47f6983148 wrap print progress in pprint 2022-10-25 01:47:39 +09:00
Ryo Nakamura
c83927cd5a add copy start and done output
These fputs should be wrapped in a function and protected by a lock. todo.
2022-10-25 00:14:47 +09:00
Ryo Nakamura
7ca4a85b76 fix miss flag handling for threads[n].finished 2022-10-25 00:04:59 +09:00
Ryo Nakamura
8d7e6fe016 todo: consider smp for counters 2022-10-24 23:50:00 +09:00
Ryo Nakamura
962542bd9c adjust order of thread spawning 2022-10-23 21:53:41 +09:00
Ryo Nakamura
79e717d1ed configurable sftp_buf_sz.
default value 131072 is derived from qemu/block/ssh.c.
we need more investigaion.
2022-10-23 21:43:44 +09:00
Ryo Nakamura
7c18d42004 bps to byte/s 2022-10-23 16:10:07 +09:00
Ryo Nakamura
03a20c77d8 spawn monitor thread before copy threads 2022-10-23 16:05:49 +09:00
Ryo Nakamura
d11ac58f4b compilable in linux 2022-10-23 15:51:21 +09:00
Ryo Nakamura
99b2bca7e5 fix usage 2022-10-23 01:21:44 +09:00
Ryo Nakamura
3849cc6bc6 fix on progress bar 2022-10-23 01:16:03 +09:00
Ryo Nakamura
75a1d8e737 add progress bar 2022-10-23 01:08:40 +09:00
Ryo Nakamura
ec785ff33e fix stat output 2022-10-23 00:14:28 +09:00