sudo apt-get install figlet
sudo touch /etc/update-motd.d/10-my-banner
sudo chmod +x /etc/update-motd.d/10-my-banner
10-my-banner.sh:
#!/bin/sh
/** | |
* Binds a component to one or more decorator functions. | |
* @param {Object} component | |
* @param {[function]} decorators | |
* @returns {Object} | |
* @throws {Error} | |
*/ | |
function Decorator(component, decorators) { | |
if (!component || !decorators) { | |
throw new Error('Failed to create decorator, arguments invalid.'); |
mysql -u root -p
mysql> select @@datadir;
sudo service mysql stop
sudo service mysql status
sudo rsync -av /var/lib/mysql /mnt/data-01
sudo mv /var/lib/mysql /var/lib/mysql.bak
datadir
to point to the new volume:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
datadir=/mnt/data-01/mysql
sudo vim /etc/systemd/system/redis.service
Set ReadWriteDirectories=-/mnt/data-01
sudo mkdir /mnt/data-01/redis
Set chown
and chmod
The permissons on /var/lib/redis are 755 and it's owned by redis:redis.
The permissons on /var/lib/redis/dump.rdb are 644 and it's owned by redis:redis.
Switch configurations while redis is running
/** | |
* Retries a async function recursively n times. | |
* | |
* @param {function} fn | |
* @param {Number} [retries=3] | |
* @returns {Promise} | |
*/ | |
function retry(fn, retries=3, err=null) { | |
if (retries === 0) { | |
return Promise.reject(err); |
/** Quick and dirty Cart pub/sub example */ | |
class CartStore { | |
add(item) {} | |
remove(index) {} | |
update(index, item) {} | |
get(index) {} | |
getAll() {} | |
} |