Last active
June 14, 2019 17:05
-
-
Save taking/ec67c447d8e16522ff925bf094f24394 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
## taking.kr (webmaster@taking.kr) | |
## 2018-04-01 | |
########## input ID, PASS ############# | |
read -p "Transmission username: " uname | |
read -p "$uname's Password: " upasswd | |
########## input ID, PASS ############# | |
encrypt_pass=$(perl -e 'print crypt($ARGV[0], "password")' $upasswd) | |
useradd -m -p $encrypt_pass $uname | |
mkdir -p /home/$uname/Downloads/ | |
chown -R $uname.$uname /home/$uname/Downloads/ | |
chmod g+w /home/$uname/Downloads/ | |
########## firewall ############# | |
firewall-cmd --permanent --zone=public --add-service=transmissiond | |
firewall-cmd --permanent --zone=public --add-service=flexget | |
firewall-cmd --reload | |
#cd /etc/csf/ | |
#cp csf.conf csf.conf-dist | |
#sed -i 's/^TESTING =.*/TESTING = "0"/' csf.conf | |
#sed -i 's/^TCP_IN =.*/TCP_IN = "22,80,9091,10000,51413"/' csf.conf # transmission port 51413, rpc 9091 | |
#sed -i 's/^TCP_OUT =.*/TCP_OUT = "1:65535"/' csf.conf | |
#sed -i 's/^UDP_IN =.*/UDP_IN = "51413"/' csf.conf | |
#sed -i 's/^UDP_OUT =.*/UDP_OUT = "1:65535"/' csf.conf | |
#csf -r | |
########## setup ############# | |
yum update | |
yum install -y libevent transmission transmission-daemon | |
########## system autorestart ############# | |
cd /etc/init.d | |
wget -O transmissiond https://gist.githubusercontent.com/taking/ec67c447d8e16522ff925bf094f24394/raw/08b68a4beed906f06b04461e0787b2431ca99cbb/transmission-daemon | |
sed -i "s%TRANSMISSION_HOME=/home/transmission%TRANSMISSION_HOME=/home/$uname%" transmissiond | |
sed -i 's%DAEMON_USER="transmission"%DAEMON_USER="$uname"%' transmissiond | |
chmod 755 /etc/init.d/transmissiond | |
chkconfig --add transmissiond | |
chkconfig --level 345 transmissiond on | |
########## transmission configuration ############# | |
service transmissiond start | |
service transmissiond stop | |
sleep 3 | |
cd /home/$uname/.config/transmission | |
sed -i 's/^.*rpc-whitelist-enabled.*/"rpc-whitelist-enabled": false,/' settings.json | |
sed -i 's/^.*rpc-authentication-required.*/"rpc-authentication-required": true,/' settings.json # ์น ์ ์ ์ธ์ฆ ์๊ตฌ | |
sed -i 's/^.*script-torrent-done-enabled.*/"script-torrent-done-enabled": true,/' settings.json # ํ ๋ ํธ ์๋ฃ ์, sh ์คํ์ฌ๋ถ | |
sed -i 's/^.*script-torrent-done-filename.*/"script-torrent-done-filename": "SHPATH",/' settings.json # sh ๊ฒฝ๋ก์ค์ | |
sed -i 's/^.*rpc-username.*/"rpc-username": "TID",/' settings.json # ์ ์ ID | |
sed -i 's/^.*rpc-password.*/"rpc-password": "TPASSWD",/' settings.json # ์ ์ PASSWD | |
sed -i "s/SHPATH/\/home\/TID\/.config\/transmission\/transmission-done.sh/g" settings.json # shell ์คํ ๊ฒฝ๋ก ์ค์ | |
sed -i "s/TID/$uname/g" settings.json | |
sed -i "s/TPASSWD/$upasswd/g" settings.json | |
echo "settings.json ๊ฒฝ๋ก: /home/$uname/.config/transmission/settings.json" | |
echo "Daemon ๋ช ๋ น์ด: service transmissiond start|stop|restart" | |
echo "๋ณ๊ฒฝ ์ ๊ผญ! transmissiond ๋ฅผ ๋์๊ณ ์์ ํ์ ์ผ ์ ์์ ์ผ๋ก ์์ ์ด ๋ฉ๋๋ค. ์คํ ์ค ๋ณ๊ฒฝ์ ์ ์ฉ๋์ง ์์ต๋๋ค." | |
# transmission ์ ์ก ์๋ฃ ์, ๋ฆฌ์คํธ ์ ๋ฆฌ ์ ์คํฌ๋ฆฝํธ | |
cat << 'EOT' > transmission-done.sh | |
#!/bin/sh | |
SERVER="9091 -n TID:TPASSWD" | |
TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | awk '{print $1}'` | |
for TORRENTID in $TORRENTLIST | |
do | |
DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"` | |
STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"` | |
if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then | |
echo "Torrent #$TORRENTID is completed." | |
echo "Removing torrent from list." | |
transmission-remote $SERVER --torrent $TORRENTID --remove | |
fi | |
done | |
# ํด๋น ํด๋์ ์์คํ ์๊ฐ ๊ธฐ์ค +14์ผ ์ ํ์ผ ์ญ์ | |
#find /4TB/AutoDownload/Ent/ -name '*' -mtime +13 -delete | |
EOT | |
sed -i "s/TID/$uname/g" transmission-done.sh | |
sed -i "s/TPASSWD/$upasswd/g" transmission-done.sh | |
chmod +x transmission-done.sh | |
service transmissiond start | |
ipaddr=$(hostname -I|cut -f1 -d ' ') | |
echo "http://$ipaddr:9091/transmission/web/" | |
########## flexget install ############## | |
yum -y groupinstall development | |
yum install -y https://centos7.iuscommunity.org/ius-release.rpm | |
yum install -y python36u python36u-libs python36u-devel python36u-pip | |
ln -s /bin/python3.6 /bin/python3 && ln -s /bin/pip3.6 /bin/pip | |
install -U pip | |
pip install -U setuptools | |
pip install flexget | |
mkdir /home/$uname/.flexget/ | |
chown -R $uname.$uname /home/$uname/.flexget/ | |
cd /home/$uname/.flexget/ | |
cat <<EOT > config.yml | |
schedules: | |
# Download Tasks | |
- tasks: 'download_*' | |
interval: | |
# 1์๊ฐ ๋ง๋ค ์คํ | |
hours: 1 # weeks, days, hours, minutes | |
tasks: | |
download_ent: | |
rss: '์ฌ๊ธฐ์ RSS ์ฃผ์ ์ ๋ ฅ' | |
verify_ssl_certificates: no | |
download: /4TB/AutoDownload/Torrent | |
content_filter: | |
require: | |
- '*.mp4' | |
regexp: | |
accept: | |
- '๋ฌดํ๋์ ' | |
- '๋ฏธ์ด ์ฐ๋ฆฌ ์๋ผ' | |
- '๋ฐฑ๋ ์๋' | |
- '์๋ ํ๋' | |
- 'ํดํผํฌ๊ฒ๋' | |
- '๋ผ๋์ค์คํ' | |
- 'ํจ๋ฆฌ๋ค ๋ฏผ๋ฐ' | |
- '๋ ํผ์ ์ฐ๋ค' | |
- '๋ฐ๋๋งจ' | |
- '์ค์๋น' | |
- '๋์ ๋ชฉ์๋ฆฌ๊ฐ ๋ณด์ฌ' | |
- '์ด๋ฐฉ์ธ' | |
- '๋ฐฑ์ข ์์ ๊ณจ๋ชฉ์๋น' | |
- '๋ฐ์นํ ๋๊ฑฐ ๋น๋ฐฉ ์์' | |
- '๋๋ง ๋ฏฟ๊ณ ๋ฐ๋ผ์ ๋์์ด๋ถ' | |
- '์ธ์์ ์ง' | |
- 'ํ๋ผ์ค์ผ' | |
- '์ด์์ ํ๊ตญ์ ์ฒ์์ด์ง' | |
- '๋์์ด๋ชฝ2' | |
- '๋์ฅ๊ณ ๋ฅผ ๋ถํํด' | |
- '์๋ ํ์ธ์' | |
transmission: | |
host: localhost | |
username: TID | |
password: TPASSWD | |
EOT | |
sed -i "s/TID/$uname/" config.yml | |
sed -i "s/TPASSWD/$passw/" config.yml | |
# config syntax check | |
flexget -c /home/$uname/.flexget/config.yml check | |
cat <<EOT > /usr/lib/systemd/system/flexget.service | |
[Unit] | |
Description=Flexget Daemon | |
After=network.target | |
[Service] | |
Type=simple | |
User=TID | |
Group=TID | |
UMask=000 | |
WorkingDirectory=/home/TID/.flexget | |
ExecStart=/usr/local/bin/flexget daemon start | |
ExecStop=/usr/local/bin/flexget daemon stop | |
ExecReload=/usr/local/bin/flexget daemon reload | |
[Install] | |
WantedBy=multi-user.target | |
EOT | |
sed -i "s/TID/$uname/g" /usr/lib/systemd/system/flexget.service | |
systemctl daemon-reload | |
systemctl enable flexget.service | |
systemctl start flexget.service |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# chkconfig: - 16 84 | |
# description: Start up transmission-daemon | |
# | |
# processname: transmission-daemon | |
# config: /etc/sysconfig/transmission | |
# source function library | |
. /etc/rc.d/init.d/functions | |
# Get network config | |
. /etc/sysconfig/network | |
[ "${NETWORKING}" = "no" ] && exit 0 | |
# Defaults | |
TRANSMISSION_HOME=/home/transmission | |
DAEMON_USER="transmission" | |
DAEMON_ARGS="-g $TRANSMISSION_HOME/.config/transmission" | |
# Daemon | |
NAME=transmission-daemon | |
DAEMON=$(which $NAME) | |
DAEMON_PIDFILE=/var/run/$NAME.pid | |
DAEMON_LOCKFILE=/var/lock/subsys/$NAME | |
DAEMON_SCRIPTNAME=/etc/init.d/$NAME | |
DAEMON_LOGFILE=/var/log/$NAME.log | |
[ -x "$DAEMON" ] || exit 0 | |
start() { | |
echo -n $"Starting ${NAME}: " | |
if [ -n "$TRANSMISSION_HOME" ]; then | |
export TRANSMISSION_HOME | |
fi | |
su - $DAEMON_USER -c "$DAEMON $DAEMON_ARGS" | |
sleep 2 | |
status $NAME &> /dev/null && echo_success || echo_failure | |
RETVAL=$? | |
if [ $RETVAL -eq 0 ]; then | |
touch $DAEMON_LOCKFILE | |
pidof -o %PPID -x $NAME > $DAEMON_PIDFILE | |
fi | |
echo | |
} | |
stop() { | |
echo -n $"Shutting down ${NAME}: " | |
killproc $NAME | |
RETVAL=$? | |
[ $RETVAL -eq 0 ] && /bin/rm -f $DAEMON_LOCKFILE $DAEMON_PIDFILE | |
echo | |
} | |
case "$1" in | |
start) | |
start | |
;; | |
stop) | |
stop | |
;; | |
restart) | |
stop | |
start | |
;; | |
status) | |
status $NAME | |
;; | |
*) | |
echo "Usage: $SCRIPTNAME {start|stop|restart|status}" >&2 | |
exit 3 | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉํ๋ฒฝ์ด csf๋ผ firewalld ๋ ํ ์คํธ๋ฅผ ํ์ง ๋ชปํ์ต๋๋ค.