iT邦幫忙

1

mySQL Crontab database backup > FTP下載 發生錯誤 > no such file or directory

您好
CentOS7環境

Crontab 自動備份mySQL ,

  1. FTP下載時發生 : open for read: no such file or directory
  2. 檔案也無法更名及刪除 (檔案權限644 也無法異動)
  3. 在直接cmd視窗執行 mysqldump -umyid -pmypassword ABC > /home/backupDB/ABC2018001.sql ,是可以下載的.

請問 如何解決這問題?
請問 將/home/backupDB/的所有檔案改成777的語法如何撰寫?

先謝謝各位!


backupmysql-day.sh 檔案內容:

#!/bin/bash
day1=date -d '-1 days' +%Y%m%d
db1=/home/backupDB/ABC$day1.sql
mysqldump -umyid -pmypassword ABC > $db1

/var/spool/cron/root 檔案內容:
1 0 * * * * /bin/sh /home/cron/backupmysql-day.sh >> /dev/null 2>&1

匯出檔案 :
/home/backupDB/ABC20190108.sql

webtest iT邦新手 5 級 ‧ 2019-01-10 08:31:56 檢舉
改寫 backupmysql-day.sh , 匯出檔案可以下載 刪除 更名

/usr/bin/mysqldump -u root -p'mypsw' --all-database | gzip > /home/backupDB/database_`date '+%Y%m%d%H%M%S'`.sql.gz

權限是644
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2

這要先知道你的動作。是否是等到備份完成後才做下載動作。
因為正在備份的檔案,是被鎖住的不能更名才對。下載有些主機或ftp軟體可以,有些不行。
跟鎖檔有關係就是了。

再來就是身份權限的問題。一般來說,cron建立出來的檔案,大多都是root的身份,或是該web的身份。這得看你放在哪個身份運行。如果是直接就放在etc下的crontab的話。那就大多是root的身份了。
所以你如果ftp用非root的身份進去的話。就有可能因為該檔是屬於root的。你無權可以使用。

往以上的可能性去看吧。用ftp上也可以知道該檔案是設定在哪個gid上。

webtest iT邦新手 5 級 ‧ 2019-01-09 17:29:13 檢舉

謝謝您!

  1. Crontab 排程 & .sh 建立 & 相關目錄夾 是在root帳號建立
    (root root)
  2. mysqldump 帳號:root
  3. ftp登入 帳號:root

.sql 檔案是644

尚未解決這問題

(CentOS7環境)

你可以先用ftp進去看該檔案的gid uid是多少。
基本上如果你的的帳號是root登入的話。理當是不用擔心權限的問題。
畢竟root已經是很大的權限了。

但你說還是不能更名。你或許可以先試試用sftp的方式連接看看。
搞不好你的ftp環境會有不同的gid來應用。用sftp會比較直接點。

我要發表回答

立即登入回答