2012-11-13 74 views
3

我有一個cron作業,它在名爲'deployer'的用戶下運行,訪問權限有限。 cron作業正在執行redis數據庫的備份,導致dum /var/lib/redis/dump.rdb。更改redis轉儲的默認文件權限

現在,cron作業現在嘗試執行/bin/gzip -c /var/lib/redis/dump.rdb > /home/deployer/Backup/.tmp/redis_backup/databases/Redis/dump.rdb.gz,然後再將其發送到S3。問題是,上/var/lib/redis/dump.rdb的權限是-rw-RW ----,所以我得到了以下錯誤:

gzip: /var/lib/redis/dump.rdb: Permission denied 

所以我的問題是,我對向我的部署者用戶提供更大的權限不感興趣,所以我希望每次運行cron作業時創建的轉儲具有其他權限。

我該如何做到最簡單的方法?

回答

3

Redis轉儲文件是使用標準fopen('...',「w」)調用創建的。所以訪問權限實際上是從當前的umask繼承的。

$ umask 022 

這個命令將改變了掩蓋,因此:

嘗試,通過使用umask命令來改變腳本中的umask或用於啓動Redis的服務器,啓動Redis的服務器本身前殼新文件將創建644個訪問權限(666是默認訪問權限)。

+0

工作就像一個魅力,我改變它在啓動命令中的redid-server的init.d腳本:-) –