One final topic I want to share with you is that of preserving your Raspberry Pi's SD card. SD cards have a finite write cycle, and continuous writing to the card will eventually burn it out. If we're going to be writing lots of log file entries and taking lots of camera images, we will want to protect our SD card in order to maintain the integrity and reliability of our system; using the system RAM instead can help us with this.
Our Raspberry Pi has plenty of fast system RAM available to us (1Gb on the latest models) that isn't susceptible to this write burn-out issue. Therefore, I'm going to show you how to allocate some of it to create a temporary disk in memory, which we can write files to that we don't need kept on the SD card. Such files would include the, quite large, camera image files that will be emailed out of the system— which, therefore, don't need to be stored permanently. You should also consider any log files that are regularly written to, which would then be shipped off the system at regular intervals.
Let's create a Bash script file called setup-ramfs.sh
, and copy it to our /etc/pi-alarm
folder:
#!/bin/bash #/etc/pi-alarm/setup-ramfs.sh RAM_DISK="/ramfs" RAM_DISK_SIZE=64M # Create RAM Disk ########################## if [ ! -z "$RAM_DISK" ]; then echo "[INIT] Creating RAM Disk... $RAM_DISK" mkdir -p $RAM_DISK chmod 777 $RAM_DISK mount -t tmpfs -o size=$RAM_DISK_SIZE tmpts $RAM_DISK/ echo "[INIT] RAM Disk created at $RAM_DISK" fi ############################################
setup-ramfs.sh
RAM disk creation script
Running the preceding script will create a RAM disk folder at /ramfs
—you can treat it just like any other folder; it's just that it resides in the system memory rather than on the SD card:
$ cd /ramfs $ ls
You can call this script from the alarm-control.sh
script as part of the initialization process by including the line:
. /etc/pi-alarm/setup-ramfs.sh
3.138.204.166