make-link.js const typeA = { label: '类型A', destPath: '/home/a/src', src: [ '/home/a/1', '/home/a/2', ]};const typeB = { label: '类型B', destPath: '/home/b/src', src: [ '/home/b/1', ]};'use strict';const fs = require('fs');const path =
const typeA = {
label: '类型A',
destPath: '/home/a/src',
src: [
'/home/a/1',
'/home/a/2',
]
};
const typeB = {
label: '类型B',
destPath: '/home/b/src',
src: [
'/home/b/1',
]
};
'use strict';
const fs = require('fs');
const path = require('path');
function makeLinks(type) {
const success = [];
const failed = [];
const abnormal = [];
type.src.forEach(function (target) {
const linkPath = path.join(type.destPath, path.basename(target));
if (!fs.existsSync(linkPath) || !fs.readlinkSync(linkPath)) {
try {
fs.symlinkSync(target, linkPath, 'dir');
success.push({ target, linkPath });
} catch (error) {
abnormal.push({ target, linkPath });
}
} else {
failed.push({ target, linkPath });
}
});
const str = `${new Array(8).fill('=').join('')} ${new Date().toLocaleString()}, ${type.label}, 成功:${success.length},失败:${failed.length},异常:${abnormal.length} ${new Array(8).fill('=').join('')}`;
const d = new Date();
const dirName = path.join(__dirname, 'logs');
if (!fs.existsSync(dirName)) fs.mkdirSync(dirName);
const fileName = path.join(dirName, `log-${d.getFullYear()}${d.getMonth()+1}${d.getDate()}.json`);
console.log(str);
const fileInfo = { 统计: str, 成功: success, 失败: failed, 异常: abnormal };
fs.appendFileSync(fileName, `${JSON.stringify(fileInfo, null, ' ')}\n`);
};
makeLinks(typeA);
makeLinks(typeB);
make-link.sh
#!/bin/bash
base_src_path='' #/home/src/
base_des_path=/home/data/test/
links=(
######################################## A 类型 ########################################
a/src/ /home/a/1
a/src/ /home/a/2
######################################## B 类型 ########################################
b/src/ /home/b/1
)
n=`expr ${#links[*]} - 1`
for i in `seq 0 ${n}`
do
if [ $(($i%2)) == 0 ]
then
src=${base_src_path}${links[${i} + 1]}
des=${base_des_path}${links[${i}]}
ln -s ${src} ${des}
fi
done
echo ' __^__ __^__'
echo '( ___ )---------------( ___ )'
echo ' | / | | \ |'
echo ' | / | ln done! | \ |'
echo ' | / | | \ |'
echo ' |___| |___|'
echo '(_____)---------------(_____)'
