脚本只复制一个文件

时间:2014-08-20 11:04:35

标签: bash shell crontab expect scp

我正在尝试scp将目录中的所有文件传输到另一个盒子 - 但我似乎只在另一台机器上接收一个文件。我使用的脚本如下;

#!/usr/bin/expect -f

# connect via scp
spawn scp -r /var/opt/backup/mariadb/ user@ip:address:of:box:/var/opt/backup/
#######################
expect {
  -re ".*es.*o.*" {
   exp_send "yes\r"
   exp_continue
  }
  -re ".*sword.*" {
    exp_send "password\r"
  }
}
expect eof

echo "copy completed"
echo "removing backup files now"
rm -rf /var/opt/backup/mariadb
echo "remove completed"
echo "finished!"

从我所看到的,递归命令就像我已经实现它所以我不太确定为什么我可能只收到一个文件。

任何人都可以看到我的代码存在任何问题。

添加了更多信息:我发现该副本实际上卡在以下行中events_waits_summary_global_by_event_name.frm

由于

在重定向日志上输出less命令

^MSwifteHots.frm                                  0%    0     0.0KB/s   --:-- ETA^MSwifteHots.frm                                100% 8600     8.4KB/s   00:00    
^MChatSessions.frm                                0%    0     0.0KB/s   --:-- ETA^MChatSessions.frm                              100% 8626     8.4KB/s   00:00    
^MMessages.frm                                    0%    0     0.0KB/s   --:-- ETA^MMessages.frm                                  100% 8640     8.4KB/s   00:00    
^MApnsDevices.frm                                 0%    0     0.0KB/s   --:-- ETA^MApnsDevices.frm                               100% 8670     8.5KB/s   00:00    
^MAvailableHots.frm                               0%    0     0.0KB/s   --:-- ETA^MAvailableHots.frm                             100% 8604     8.4KB/s   00:00    
^Mdb.opt                                          0%    0     0.0KB/s   --:-- ETA^Mdb.opt                                        100%   65     0.1KB/s   00:00    
^MShortlist.frm                                   0%    0     0.0KB/s   --:-- ETA^MShortlist.frm                                 100% 8598     8.4KB/s   00:00    
^MProfileImages.frm                               0%    0     0.0KB/s   --:-- ETA^MProfileImages.frm                             100% 8896     8.7KB/s   00:00    
^MPendingProfile.frm                              0%    0     0.0KB/s   --:-- ETA^MPendingProfile.frm                            100% 8674     8.5KB/s   00:00    
^MUserAccount.frm                                 0%    0     0.0KB/s   --:-- ETA^MUserAccount.frm                               100% 9111     8.9KB/s   00:00    
^Mibdata1                                         0%    0     0.0KB/s   --:-- ETA^Mibdata1                                        32% 3280KB   3.2MB/s   00:02 ETA^Mibdata1                                        45% 4688KB   3.0MB/s   00:01 ETA^Mibdata1                                        58% 5968KB   2.8MB/s   00:01 ETA^Mibdata1                                        72% 7376KB   2.7MB/s   00:01 ETA^Mibdata1                                        84% 8656KB   2.6MB/s   00:00 ETA^Mibdata1                                        98%   10MB   2.4MB/s   00:00 ETA^Mibdata1                                       100%   10MB   1.7MB/s   00:06    
^Mxtrabackup_logfile                              0%    0     0.0KB/s   --:-- ETA^Mxtrabackup_logfile                            100% 2048KB   2.0MB/s   00:00    
^Mevents_waits_history.frm                        0%    0     0.0KB/s   --:-- ETA^Mevents_waits_history.frm                      100% 9220     9.0KB/s   00:00    
/var/tmp/cron.log (END)

1 个答案:

答案 0 :(得分:0)

我只使用rsync而不是scp。

rsync -aP ~/dir1 username@remote_host:destination_directory

这里,“ - a”代表“archive”并递归同步并保留符号链接,特殊和设备文件,修改时间,组,所有者和权限。 “-P”显示您的进度。

请注意,源目录中没有尾部斜杠(使用rsync执行本地到本地时使用斜杠)。