2 Commits
1.0 ... 1.1

Author SHA1 Message Date
Elia Farin
4f2d382916 Updated readme 2024-08-09 13:48:45 -05:00
Elia Farin
93a95bc70f Removed PIDfile nonsense, if you need a pid file, figure it out yourself 2024-08-09 13:41:25 -05:00
4 changed files with 87 additions and 26 deletions

View File

@@ -1,2 +1,78 @@
# transfer_scripts # transfer_scripts
A few scripts for estimating size and transferring files A few scripts for estimating size and transferring files
## Function
transfer.pl - Use rsync to copy over files in a list or directory.
estimate.pl - Estimate the total size of a list of files or a directory.
fixlist.sh - fix your file list to the format these programs expect
## Usage
These scripts are used as follows:
$ transfer.pl
Usage: --file= --host= --directory= --user= --dest= --flags= [--verbose] [--help]
--file - Input file to read with list of files/folders to transfer
--host - IP address or hostname of the remote system
--directory - Relative or absolute path to the folder containing the files/folders to transfer,
with no trailing slash
--user - User account on the remote system to use
--dest - Destination on the remote system to copy files to
--flags - rsync flags to use when copying the files over
--verbose - run rsync with -vvv
--help - show this help
$ estimate.pl
Usage: [--dir=] [--infile=] [--help]
--dir - directory to estimate the size of
--infile - file with a list of filenames to estimate the size of
--prefix - prefix path for filenames in the infile
--help - print this help
$ fixlist.sh
Usage: /usr/local/bin/fixlist.sh <filename>
## Contributing
Feel free to fork and submit pull requests, I will review them and merge into main if I like them. If you do submit a pull request,
please also email me at elia@sassysalamander.net so I can look at it faster.
## License
Affero General Public License 3.0
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
## Copyright
2024 Elia Farin <elia@sassysalamander.net>

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env perl #!/usr/bin/env perl
# #
# Author: Elia Farin 2024 # Author: Elia Farin
# Written: 8/9/24 # Written: 8/9/24
# Modified: 8/9/24 # Modified: 8/9/24
# License: AGPL-3.0-or-later # License: AGPL-3.0-or-later

View File

@@ -5,7 +5,7 @@
# Modified: 8/9/24 # Modified: 8/9/24
# License: AGPL-3.0-or-later # License: AGPL-3.0-or-later
# #
# Copyright (C) 2024 Elia Farin # Copyright (C) 2024 Elia Farin
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@@ -19,7 +19,8 @@
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
#
#
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo "Usage: ${0} <filename>" echo "Usage: ${0} <filename>"
exit 1 exit 1

View File

@@ -1,9 +1,4 @@
#!/usr/local/bin/perl #!/usr/local/bin/perl
use strict;
use Getopt::Long;
use Proc::Pidfile;
# Transfer script transfer.pl # Transfer script transfer.pl
# Author: Elia Farin # Author: Elia Farin
# Written: 8/9/24 # Written: 8/9/24
@@ -25,25 +20,17 @@ use Proc::Pidfile;
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# #
my $pidfile; use strict;
# if we are root, create a pidfile use Getopt::Long;
if ($> = 0) { use re;
my $pp = Proc::Pidfile->new( pidfile => "/var/run/transfer.pl.pid" ); my $username = getlogin() || (getpwuid($<))[0] || $ENV{LOGNAME} || $ENV{USER};
} else {
# if not, create our home pidfile
my $home = $ENV("$HOME");
my $pp = Proc::Pidfile->new( pidfile => "$home/transfer.pl.pid");
}
# die if we cannot get pidfile lock
$pidfile = $pp->$pidfile();
# sane defaults # sane defaults
my $file = ""; my $file = "";
my $host = "192.168.42.100"; my $host = "";
my $directory = "."; my $directory = ".";
my $user = "char"; my $user = $username;
my $dest= "/home/char/Downloads/"; my $dest= "/home/$username/Downloads/";
my $flags = "rvz"; my $flags = "rvz";
my $verbose; my $verbose;
my $help; my $help;
@@ -87,9 +74,6 @@ else {
help(); help();
} }
# remove the pidfile
undef $pp;
# help subroutine # help subroutine
sub help { sub help {
print "Usage: $ARGV[0] --file= --host= --directory= --user= --dest= --flags= [--verbose] [--help]\n print "Usage: $ARGV[0] --file= --host= --directory= --user= --dest= --flags= [--verbose] [--help]\n