--
為了控制 SD 卡寫入次數限制達到最佳使用壽命,所以 Hoyo 先將自己開發的程式另外一個分割區,再把原系統分割區設定為唯讀,只要確定程式分割區所有的寫入動作皆在預想之下,如此就可以達到目的。
--
得知最近有被寫入的檔案
使用前記得校時
1 |
# ntpdate tock.stdtime.gov.tw |
找出最近一個小時內有被寫入的檔案
1 |
# find / ! -path '/proc/*' -mmin -60 -type f |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/run/log/journal/babb6c5f23fe45fc86696504cbbc02d1/system.journal /run/log/journal/babb6c5f23fe45fc86696504cbbc02d1/system@78ea610d7c7f43a08aa207a7516a2447-0000000000020253-0005c2402715397b.journal /run/log/journal/babb6c5f23fe45fc86696504cbbc02d1/system@78ea610d7c7f43a08aa207a7516a2447-000000000001fe35-0005c24008e25ccc.journal /sys/fs/cgroup/systemd/system.slice/run-user-1001.mount/cgroup.clone_children /sys/fs/cgroup/systemd/system.slice/run-user-1001.mount/tasks /sys/fs/cgroup/systemd/system.slice/run-user-1001.mount/notify_on_release /sys/fs/cgroup/systemd/system.slice/run-user-1001.mount/cgroup.procs /var/cache/apt/pkgcache.bin /var/cache/motd-news /var/lib/apt/daily_lock /var/lib/systemd/timers/stamp-apt-daily.timer /var/lib/systemd/timers/stamp-motd-news.timer /var/lib/systemd/timers/stamp-apt-daily-upgrade.timer |
- -mtime 檔案有修改,單位:天
- -mmin 檔案有修改,單位:分鐘
修正後
1 |
# find / ! -path '/proc/*' ! -path '/run/*' ! -path '/sys/*' -mmin -60 -type f 2>/dev/null |
加上 2>/dev/null 將沒有權限的訊息隱藏
--
記憶體檔案
為什麼要排除 /proc /run /sys ? 首先可以看一下 df 資訊
1 2 3 4 5 6 7 8 9 10 11 12 |
# df -h Filesystem Size Used Avail Use% Mounted on udev 210M 0 210M 0% /dev tmpfs 50M 5.9M 44M 12% /run /dev/mmcblk0p2 2.1G 1.8G 280M 87% / tmpfs 246M 0 246M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 246M 0 246M 0% /sys/fs/cgroup /dev/mmcblk0p1 40M 12M 29M 30% /boot /dev/mmcblk0p3 477M 71M 377M 16% /opt/Gateway tmpfs 50M 0 50M 0% /run/user/1000 tmpfs 50M 0 50M 0% /run/user/1001 |
可以知道系統預設掛載了很多 tmpfs 也就是使用記憶體的路徑,除了記憶體之外也有很多虛擬的檔案資訊,例如 /proc /sys ,這些路徑當然也是要排除
--
資料庫
原先使用 SQLite,使用前先將檔案複製到記憶體再從記憶體存取,當需要異動資料時再從記憶體複製到 SD 卡,這樣從邏輯也是控制了寫入,不過後來遇到頻繁遇到資料庫毀損以及最嚴重的 database disk image is malformed 問題,就改成使用 JSON 當作資料的儲存載體,當然需要犧牲一些系統功能,不過在這種應用穩定以及將問題可控制才是最重要的
(後來找到了 TinyDB 這種好像也是使用 JSON 為載體的資料儲存方式)
--
1,203 total views, 1 views today