這是真的在我的頭上!請幫忙!使用樹莓派上的節點將cvs文件保存到usb驅動器的問題
所以我有一個運行debian和node 0.12.6的小樹莓pi 2。
節點腳本監聽家庭自動化總線的事件並將它們保存到json列表中。然後將此列表使用每小時cron作業(每分鐘進行測試)保存到cvs到系統啓動時掛載的usb驅動器。
問題是,每次調用fs.writeFile時都會引發錯誤。
這隻會發生,如果我嘗試保存到USB驅動器,而不是本地文件夾,它工作正常。
我修改/ etc/fstab文件以包括以下
/dev/sda1 /home/pi/knx/usb vfat user,auto,nodev,gid=pi,uid=pi,fmask=0111,dmask=0000 0 0
這似乎在引導到安裝USB,我可以爲pi用戶使顯示目錄和文件從控制檯沒有問題。
該文件夾的權限(與安裝在USB上的USB驅動器)是這樣的....
[email protected] ~/knx $ ls -l
total 24
-rw-r--r-- 1 pi pi 965 Nov 20 16:40 app.js
drwxr-xr-x 2 pi pi 4096 Nov 20 16:00 data_files
drwxr-xr-x 2 pi pi 4096 Nov 19 12:27 install_scripts
drwxr-xr-x 7 pi pi 4096 Nov 20 16:21 node_modules
drwxrwxrwx 8 pi pi 8192 Jan 1 1970 usb
驅動器看起來是安裝好的....
[email protected] ~/knx $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 15G 0 disk
└─sda1 8:1 1 15G 0 part /home/pi/knx/usb
節點腳本...
//set up chron job to save list
var job = new CronJob({
cronTime: '00 0-59 * * * *',
onTick: function() {
console.log('saving file');
json2csv({ data: listToSave, fields: fields }, function(err, csv) {
if (err) console.log(err);
tempfilename = new Date();
fname = './usb/data_files/'+ tempfilename.toString() +'.csv';
console.log(fname);
fs.writeFile(fname, csv, function(err) {
if (err) throw err;
console.log('file saved');
listToSave=[];
});
});
},
start: true,
});
FName參數看起來是這樣的....
'./usb/data_files/Fri Nov 20 2015 16:42:00 GMT+0000 (UTC).csv'
如果我有任何的頭髮 - 我會和真正拉出來現在!
解決方案的任何想法?
謝謝devduderino!所有工作正常。真的很大,謝謝 – user2870492
很高興我能幫忙! – devduderino